android 编译 apk,漫谈Android apk编译流程

APK 编译过程

cfc63d1cb5dc0ea4a526354e9fc3481c.png

官方图

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

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

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

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值