做了这么久的Android开发,还没仔细思考过Android的构建过程呢,得嘞,今天就来梳理梳理。
1、Android构建流程
请试着用一句话介绍下Android的构建流程?OK,It is my time。咳咳~~~
先把java文件编译成我们熟悉的.class字节码文件,然后把.class字节码文件和我们所依赖的第三方java文件打包成class.dex安卓可执行的文件,然后再打包我们的资源文件,最后再把我们的dex文件和资源文件合并成未签名的包,通过签名打包成一个完整的包,这样就是安卓的构建流程。
什么,这句话说的太长?好,丢个你个官方图,应该不难理解了吧。
注:绿色标记为打包工具。
1.通过aapt打包项目中的资源文件,生成R文件。(安卓资源打包工具,会将包中的.xml文件编译成二进制形式(assets目录中不会被编译))
2.aidl:将项目中的aidl接口转换成java接口
3.将所有的R.java, java接口、源代码等通过java编译器转换成我们熟悉的.class字节码文件
4.通过安卓中的一些dex工具,结合上面产生的字节码文件打包编译成 .dex文件,即安卓虚拟机可执行的格式。
5.打包成.dex文件后,安卓中的apkbuilder工具会将编译过的资源和未编译过的资源打包成我们最熟悉的apk文件,即Android package。若想将此apk安卓到设备上,需要对它进行签名。
6.通过Jarsigner进行签名
7。通过zipalign工具对apk进行对齐操作,目的是减少所在内存的开销
是不是很清晰明了啦,真棒!