
第一步
资源文件会被aapt
工具处理为最终的resources.arsc
,并生成相关的R文件。
第二步
如果本地存在.aidl
文件,则生成相对于的Java Interfaces
类文件。
第三步
Java编译器
会将R.java
,源代码文件
,aidl相关的接口文件
,统一编译成.class文件
。
第四步
将dex工具
对生成的.class文件
以及第三方库代码
进行处理,生成.dex文件
。
第五步
接下来会将生成的.dex文件
,resources.arsc
,以及其他资源(如.so文件)
生成一个初始的apk文件
。
第六步
使用签名工具对初始的apk文件
进行签名
第七步
会通过zipalign
对上述签名后的apk文件
进行优化,对apk包
中的数据进行边界对齐,从而加快读取和处理速度,目的是提高程序的加载速度和运行速度。
原文地址
https://blog.csdn.net/byhook/article/details/83060836
参考
《深入理解android内核设计思想 第2版》
网友评论