阅读 63

漫谈Android apk编译流程

APK 编译过程

image.png

官方图

Android 代码(dex文件)编译流程

APK-build.png

网络流传的比较全的图,部分细节可能有差异

Android APK 的编译流程我们可以划分为2个部分:
1.是资源的编译
2.是代码的编译

其中so库是通过NDK编译生成.so文件后直接打进apk的中

资源编译

资源编译部分,首先apk资源包含哪些内容呢
1.工程中res目录下的所有文件
2.assets目录下的文件
3.andoird清单文件 AndroidManifest.xml
这些资源都是通过aapt工具编译的,最终变编译成一个资源包

代码编译

代码编译部分包含
1.java源码文件
2.已编译好的java 类库及jar包
3.已编译好的带android资源的类库 即 aar包
4.R类

R类是由资源资源编译时aapt生成的

其中java源文件需要先通过 javac工具编译成 class文件,
然后class文件和所有的jar包、包括aar包中的class文件 通过dx和d8编译器被编译成de文件

apkbuild

编译好的aar文件最后通过zip命令被加入到第一步通过aapt编译生成的资源压缩包中

最后,详细的资源编译和代码编译的内容可以参考后续相关的文章

参考

developer.android.com/studio/buil…

关注下面的标签,发现更多相似文章
评论