【Android】【資源編譯、打包】

整體架構(gòu)

image.png

通過AAPT(Android Assert Package Tool)對資源打包,打包前,大部分XML會被編譯成二進制,這樣可以減小體積與優(yōu)化解析速度
為了快速定位資源

  1. 給每個非Asset資源一個id,他們定義在R.java
  2. 生成resources.arsc,即資源索引表,根據(jù)id描述資源相關配置

所以著重關注

  1. XML資源編譯過程
  2. R.java生成過程
  3. resources.arsc生成過程(AAPT在編譯前,會創(chuàng)建資源表ResourceTable,根據(jù)ResourceTable生成resources.arsc)
image.png

AAPT執(zhí)行過程

image.png

1、解析AndroidManifest.xml
2、添加被引用資源包
3、創(chuàng)建AaptAssets,收集資源文件
4、收集到的資源增加到ResourceTable中
5、編譯values資源
6、給Bag資源分配id
7、編譯XML資源文件:解析XML、賦予屬性資源id、解析屬性值、XML轉(zhuǎn)二進制、寫入資源id、字符串替換
8、生成資源符號
9、生成resources.arsc

image.png

10、編譯AndroidManifest.xml
11、生成R.java
12、打包APK

后記

有什么寫得錯誤、讓人費解或遺漏的地方,希望可以不吝賜教,我會馬上更改

學習自

https://blog.csdn.net/luoshengyang/article/details/8744683

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容