官方图java
网络流传的比较全的图,部分细节可能有差别android
Android APK 的编译流程咱们能够划分为2个部分:
1.是资源的编译
2.是代码的编译网络
其中so库是经过NDK编译生成.so文件后直接打进apk的中工具
资源编译部分,首先apk资源包含哪些内容呢
1.工程中res目录下的全部文件
2.assets目录下的文件
3.andoird清单文件 AndroidManifest.xml
这些资源都是经过aapt工具编译的,最终变编译成一个资源包ui
代码编译部分包含
1.java源码文件
2.已编译好的java 类库及jar包
3.已编译好的带android资源的类库 即 aar包
4.R类3d
R类是由资源资源编译时aapt生成的cdn
其中java源文件须要先经过 javac工具编译成 class文件,
而后class文件和全部的jar包、包括aar包中的class文件 经过dx和d8编译器被编译成de文件xml
编译好的aar文件最后经过zip命令被加入到第一步经过aapt编译生成的资源压缩包中blog
最后,详细的资源编译和代码编译的内容能够参考后续相关的文章ip