[發明專利]組件化合并編譯方法、裝置、設備和存儲介質有效
| 申請號: | 201910760106.4 | 申請日: | 2019-08-16 |
| 公開(公告)號: | CN110457045B | 公開(公告)日: | 2023-05-16 |
| 發明(設計)人: | 楊超 | 申請(專利權)人: | 百度在線網絡技術(北京)有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/60 |
| 代理公司: | 北京品源專利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 組件 化合 編譯 方法 裝置 設備 存儲 介質 | ||
1.一種組件化合并編譯方法,其特征在于,包括:
確定參與組件合并的主組件和所述參與組件合并的依賴組件;
獲取所述參與組件合并的主組件和所述參與組件合并的依賴組件涉及的渠道信息,并根據所述參與組件合并的依賴組件涉及的渠道信息,分別為每個渠道下的所述參與組件合并的依賴組件確定組件編譯信息;
基于所述參與組件合并的主組件涉及的渠道信息以及所述參與組件合并的依賴組件的組件編譯信息,執行所述參與組件合并的主組件的合并任務鏈,得到每個渠道下合并后的目標組件;
其中,根據所述參與組件合并的依賴組件涉及的渠道信息,分別為每個渠道下的所述參與組件合并的依賴組件確定組件編譯信息,包括:
根據所述參與組件合并的依賴組件涉及的渠道信息以及未攜帶渠道信息的依賴組件的參考編譯信息,分別為每個渠道下的所述參與組件合并的依賴組件構建所述組件編譯信息,其中,所述組件編譯信息包括組件被編譯后的產物存儲路徑以及所述參與組件合并的依賴組件和所述參與組件合并的主組件之間的依賴關系,所述參考編譯信息通過對未攜帶渠道信息的依賴組件進行自動編譯后確定。
2.根據權利要求1所述的方法,其特征在于,在所述分別為每個渠道下的所述參與組件合并的依賴組件確定組件編譯信息之前,所述方法還包括:
遍歷各個依賴組件,通過與已被自動編譯的依賴組件進行名稱對比,確定攜帶有渠道信息的所述參與組件合并的依賴組件。
3.根據權利要求1所述的方法,其特征在于,所述參與組件合并的主組件和所述參與組件合并的依賴組件均包括以下目標文件中的至少之一:Resource文件、Jni文件、Assets文件、AndroidManifest文件、Class文件、Jar文件和R文件;
所述執行所述參與組件合并的主組件的合并任務鏈,得到每個渠道下合并后的目標組件,包括:
執行所述參與組件合并的主組件的合并任務鏈中與各目標文件對應的合并編譯任務,得到每個渠道下合并后的各目標文件;
針對每個渠道,將合并后的各目標文件進行壓縮打包得到所述目標組件。
4.根據權利要求3所述的方法,其特征在于,當所述參與組件合并的主組件和所述參與組件合并的依賴組件包括所述AndroidManifest文件時,所述執行所述參與組件合并的主組件的合并任務鏈中與各目標文件對應的合并編譯任務,得到每個渠道下合并后的各目標文件,包括:
針對每個渠道,利用反射繼承方式從Gradle系統中獲取Manifest合并編譯任務;
基于預先設置的所述AndroidManifest文件在所述參與組件合并的主組件和所述參與組件合并的依賴組件中被編譯后的產物存儲路徑,執行所述Manifest合并編譯任務,得到當前渠道下合并后的AndroidManifest文件。
5.根據權利要求4所述的方法,其特征在于,所述利用反射繼承方式從Gradle系統中獲取Manifest合并編譯任務,包括:
利用反射繼承函數獲取所述Manifest合并編譯任務的類對象;
基于所述類對象,利用任務實例創建函數,創建所述Manifest合并編譯任務的任務實例。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于百度在線網絡技術(北京)有限公司,未經百度在線網絡技術(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910760106.4/1.html,轉載請聲明來源鉆瓜專利網。





