转载

漫谈Android apk编译流程

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

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编译生成的资源压缩包中

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

原文  https://juejin.im/post/5d6e1349f265da03c02c1e5b
正文到此结束
Loading...