[發明專利]一種Dex文件的構建方法、目標應用的運行方法及裝置在審
| 申請號: | 202011004872.7 | 申請日: | 2020-09-22 |
| 公開(公告)號: | CN112148300A | 公開(公告)日: | 2020-12-29 |
| 發明(設計)人: | 劉彥明 | 申請(專利權)人: | 網易(杭州)網絡有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 北京超成律師事務所 11646 | 代理人: | 張芮 |
| 地址: | 310052 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 dex 文件 構建 方法 目標 應用 運行 裝置 | ||
本申請提供了一種Dex文件的構建方法、目標應用的運行方法及裝置,該構建方法包括:獲取目標應用對應的代碼資源;根據代碼資源中的項目代碼資源以及項目代碼資源關聯的依賴代碼資源,生成主Dex文件對應的第一資源清單;復制第一資源清單,得到備份第一資源清單;判斷備份第一資源清單中的資源數量是否大于單個Dex文件對應的限制資源數量,若是,則對備份第一資源清單進行刪減處理,得到包括目標資源的第二資源清單,并基于第二資源清單替換第一資源清單;將替換后的第二資源清單中的目標資源寫入主Dex文件中。這樣,在保證目標應用正常啟動的前提下,避免了應用構建失敗的問題,且提高了目標應用的構建效率。
技術領域
本申請涉及游戲技術領域,具體而言,涉及一種Dex文件的構建方法、目標應用的運行方法及裝置。
背景技術
在Android應用構建流程中,應用的原始資源經過編譯構建之后生成Dex文件,Dex文件包含了用來運行應用的已編譯代碼,供運行應用的設備(具體為虛擬機)加載使用。其中,虛擬機指令中采用16位二進制來記錄一個Dex文件所引用的方法個數,所以,單個Dex文件包含的代碼資源所引用的方法數目不能超過65536,這便是“64K引用限制”。
隨著應用功能的增多,應用的代碼所引用的方法個數不可避免會超過65536,相應的,單個Dex文件已經無法放下所有方法。為了解決這個問題,目前采用分包的方式,即拆分這些方法,拆分之后的方法存放在多個Dex文件中。在基于低版本虛擬機運行Dex文件的場景下,需要將大量的方法寫入主Dex文件中,以保證應用的正常啟動,但是,該種方式中,要寫入主Dex文件中的方法數量還是可能會超過限制數量65536,當要寫入主Dex文件中的方法數量超過限制數量時,就導致這些方法無法被打包到主Dex中,進而導致應用構建失敗,且應用的構建效率低。
發明內容
有鑒于此,本申請的目的在于提供一種Dex文件的構建方法、目標應用的運行方法及裝置,在特定的時機,通過攔截主Dex文件對應的第一資源清單實現自主干預分包,并在分包時至少保留主Dex文件對應的第一資源清單中的目標資源,這樣,在保證目標應用正常啟動的前提下,避免了目標應用構建失敗的問題,且提高了目標應用的構建效率。
第一方面,本申請實施例提供了一種Dex文件的構建方法,所述構建方法包括:
獲取目標應用對應的代碼資源;
根據所述代碼資源中的項目代碼資源以及所述項目代碼資源關聯的依賴代碼資源,生成主Dex文件對應的第一資源清單;
復制所述第一資源清單,得到備份第一資源清單;判斷所述備份第一資源清單中的資源數量是否大于單個Dex文件對應的限制資源數量,若是,則對所述備份第一資源清單進行刪減處理,得到包括目標資源的第二資源清單,并基于所述第二資源清單替換所述第一資源清單;其中,所述目標資源中至少包括啟動所述目標應用的應用入口資源和加載其他Dex文件前引用的資源;
將替換后的所述第二資源清單中的目標資源寫入所述主Dex文件中。
在一種實施方式中,所述復制所述第一資源清單,得到備份第一資源清單,包括:
監聽目標任務的運行狀態,所述目標任務在運行時用于生成所述主Dex文件對應的第一資源清單;
在監聽到所述目標任務運行結束時,復制所述第一資源清單,得到備份第一資源清單。
在一種實施方式中,通過如下方式構建所述目標任務,包括:
根據所述目標應用對應的構建類型和標識信息,構建所述目標任務。
在一種實施方式中,所述對所述備份第一資源清單進行刪減處理,得到包括目標資源的第二資源清單,包括:
確定備份第一資源清單中啟動所述目標應用的應用入口資源和加載其他Dex文件前引用的資源,得到第一資源;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于網易(杭州)網絡有限公司,未經網易(杭州)網絡有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011004872.7/2.html,轉載請聲明來源鉆瓜專利網。





