[發(fā)明專利]一種Java類分析方法、裝置、存儲介質(zhì)及電子設(shè)備有效
| 申請?zhí)枺?/td> | 201911142937.1 | 申請日: | 2019-11-20 |
| 公開(公告)號: | CN110990019B | 公開(公告)日: | 2023-05-02 |
| 發(fā)明(設(shè)計)人: | 馮俊 | 申請(專利權(quán))人: | 騰訊音樂娛樂科技(深圳)有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/75 |
| 代理公司: | 深圳翼盛智成知識產(chǎn)權(quán)事務(wù)所(普通合伙) 44300 | 代理人: | 陳曉真 |
| 地址: | 518000 廣東省深圳市*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 java 分析 方法 裝置 存儲 介質(zhì) 電子設(shè)備 | ||
本發(fā)明實施例公開了一種Java類分析方法、裝置、存儲介質(zhì)及電子設(shè)備。該方案確定目標Java工程,以及目標Java工程的源代碼文件;分析源代碼文件,確定目標Java工程的經(jīng)過第一修改的目標源代碼文件;對目標源代碼文件進行編譯,生成目標字節(jié)碼文件;確定目標字節(jié)碼文件的類的歷史數(shù)據(jù)結(jié)構(gòu),其中,歷史數(shù)據(jù)結(jié)構(gòu)為目標Java工程在第二修改后生成;基于歷史數(shù)據(jù)結(jié)構(gòu),對目標字節(jié)碼文件進行解析,以確定目標源代碼代碼文件中發(fā)生變化的類,以及類中發(fā)生變化的元素,以實現(xiàn)對Java文件的高效編譯。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及一種Java類分析方法、裝置、存儲介質(zhì)及電子設(shè)備。
背景技術(shù)
增量編譯是Android開發(fā)中優(yōu)化工程編譯速度的手段之一。其核心原理在于:對于一個Java工程來說,在修改其中的某個類之后,再次編譯Java文件時,只會編譯這個類對應(yīng)的Java文件以及少量的其他代碼文件,而非目標Java工程的全部Java文件,從而達到節(jié)省編譯時間的目的。
在進行增量編譯的時候,需要一種分析方法來確定一個類在修改后的目標Java工程中有哪些元素發(fā)生了變化,以在保證Java文件編譯正確性的同時,實現(xiàn)高效編譯。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種Java類分析方法、裝置、存儲介質(zhì)及電子設(shè)備,旨在實現(xiàn)對Java文件的高效編譯。
本發(fā)明實施例提供一種Java類分析方法,包括:
確定目標Java工程,以及所述目標Java工程的源代碼文件;
分析所述源代碼文件,確定所述目標Java工程的經(jīng)過第一修改的目標源代碼文件;
對所述目標源代碼文件進行編譯,生成目標字節(jié)碼文件;
確定所述目標字節(jié)碼文件的類的歷史數(shù)據(jù)結(jié)構(gòu),其中,所述歷史數(shù)據(jù)結(jié)構(gòu)為所述目標Java工程在第二修改后生成;
基于字節(jié)碼分析工具,對所述目標字節(jié)碼文件進行解析,確定所述目標字節(jié)碼文件中類的當前數(shù)據(jù)結(jié)構(gòu);
將所述目標字節(jié)碼文件中類的當前數(shù)據(jù)結(jié)構(gòu)與歷史數(shù)據(jù)結(jié)構(gòu)進行對比,以確定所述目標源代碼文件中發(fā)生變化的類,其中,若類的當前數(shù)據(jù)結(jié)構(gòu)與歷史數(shù)據(jù)結(jié)構(gòu)的成員變量不同,則判定類發(fā)生變化;
根據(jù)所述類的當前數(shù)據(jù)結(jié)構(gòu)與歷史數(shù)據(jù)結(jié)構(gòu)中不同的成員變量,確定所述類中發(fā)生變化的元素。
本發(fā)明實施例還提供一種Java類分析裝置,包括:
獲取單元,用于確定目標Java工程,以及所述目標Java工程的源代碼文件;
分析單元,用于分析所述源代碼文件,確定所述目標Java工程的經(jīng)過第一修改的目標源代碼文件;
編譯單元,用于對所述目標源代碼文件進行編譯,生成目標字節(jié)碼文件;
所述獲取單元還用于:確定所述目標字節(jié)碼文件的類的歷史數(shù)據(jù)結(jié)構(gòu),其中,所述歷史數(shù)據(jù)結(jié)構(gòu)為所述目標Java工程在第二修改后生成;
所述分析單元還用于:基于字節(jié)碼分析工具,對所述目標字節(jié)碼文件進行解析,確定所述目標字節(jié)碼文件中類的當前數(shù)據(jù)結(jié)構(gòu);
確定單元,用于將所述目標字節(jié)碼文件中類的當前數(shù)據(jù)結(jié)構(gòu)與歷史數(shù)據(jù)結(jié)構(gòu)進行對比,以確定所述目標源代碼文件中發(fā)生變化的類,其中,若類的當前數(shù)據(jù)結(jié)構(gòu)與歷史數(shù)據(jù)結(jié)構(gòu)的成員變量不同,則判定類發(fā)生變化;
以及,根據(jù)所述類的當前數(shù)據(jù)結(jié)構(gòu)與歷史數(shù)據(jù)結(jié)構(gòu)中不同的成員變量,確定所述類中發(fā)生變化的元素。
本發(fā)明實施例還提供一種存儲介質(zhì),所述存儲介質(zhì)存儲有多條指令,所述指令適于處理器進行加載,以執(zhí)行本發(fā)明實施例所提供的任一Java類分析方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于騰訊音樂娛樂科技(深圳)有限公司,未經(jīng)騰訊音樂娛樂科技(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911142937.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:紅外探測器讀出電路銦凸點重置方法
- 下一篇:一種抗油污天花涂料及其制備方法





