【Android】【资源编译、打包】

整体架构

image.png

通过AAPT(Android Assert Package Tool)对资源打包,打包前,大部分XML会被编译成二进制,这样可以减小体积与优化解析速度
为了快速定位资源

  1. 给每个非Asset资源一个id,他们定义在R.java
  2. 生成resources.arsc,即资源索引表,根据id描述资源相关配置

所以着重关注

  1. XML资源编译过程
  2. R.java生成过程
  3. resources.arsc生成过程(AAPT在编译前,会创建资源表ResourceTable,根据ResourceTable生成resources.arsc)
image.png

AAPT执行过程

image.png

1、解析AndroidManifest.xml
2、添加被引用资源包
3、创建AaptAssets,收集资源文件
4、收集到的资源增加到ResourceTable中
5、编译values资源
6、给Bag资源分配id
7、编译XML资源文件:解析XML、赋予属性资源id、解析属性值、XML转二进制、写入资源id、字符串替换
8、生成资源符号
9、生成resources.arsc

image.png

10、编译AndroidManifest.xml
11、生成R.java
12、打包APK

后记

有什么写得错误、让人费解或遗漏的地方,希望可以不吝赐教,我会马上更改

学习自

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容