APK打包流程

文章详细阐述了Android应用程序从资源编译到生成APK的全过程,包括AAPT如何生成R.java和resource.arsc,AIDL用于跨进程通信的接口生成,APT通过注解处理生成Java代码,JavaCompiler编译源代码,Dex工具将类文件转换为.dex格式,apkbuilder整合资源生成APK,然后通过jarsigner签名,release模式下使用zipalign进行字节对齐优化,以提高运行效率。
摘要由CSDN通过智能技术生成

(图是从别地儿抠过来的,所以不清晰 =。=)

AAPT:

首先,安卓APP的资源这一块,会通过aapt进行一个编译,这个工具编译的时候,会首先会把我们的这个xml文件生成这一个R.java,然后再就是像manifest清单文件,它会通过编译把生成一个二进制文件,资源文件,他会去生成一个resource.arsc文件等等。

AIDL:

右边这一块的话,有一个AIDL。AIDL主要针对程序中跨进程的文件处理,帮你把用aidl这样的接口描述语言写的文件转换成或者说生成这一个Java文件。

APT:

这个里面其实还有像比方说apt,它实际上也是通过APT工具按照我们的一个规则,通过注解去生成Java文件,这个过程也是在这一块做的。

Java Compiler:

做完上述可以看到就相当于有三种这样的Java文件,资源生成R.java,aidl这样的工具生成的Java,再就是我们自己写的Java文件,这些都会通过Javac直接编译成.class文件.

dex:

Dex工具会把class文件,还有我们的第三方的这样的依赖库和.class文件,进行编译生成.dex文件,.dex主要是用来在我们的虚拟机运行,当然这个过程也会去消除一些冗余信息、压缩常量值等等做这样的一些简单的处理,相当于简单的优化一下。

 apkbuilder:

生成的.dex就通过apkbuilder编译工具,把由AAPT生成的编译的资源文件,.dex文件,还有其他的一些资源,把它合并生成我们的.apk包。

jarsigner

生成我们的.apk包后就通过运行模式(debug/release)进行签名,生成签名之后生成的signed.apk

zipalign(release模式)

生成签名apk后一般还会做一个字节对齐,那么一般是四字节对齐,主要是为了减少运行时的内存,包括像mmap,对齐了字节后,可以直接访问资源文件,让资源的访问速度更快。

整个APK编译流程大致就是这样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值