当按下这个绿色的小三角形按钮后,AS
到底对我们的Android
项目做了什么。当然编译之前必须选择要部署apk
的设备。
我大概总结了下:
首先是预编译,如果主module依赖了其它module,那么被依赖的module也要进行编译。
然后是打包资源文件。
处理配置清单文件和处理资源文件。
编译,源码被编译成字节码。
执行所有transform开头的任务。
依赖的library生成.aar文件,application生成.apk文件。
aapt
工具开始到生成签名apk
文件的过程。
上图从左上角开始,aapt工具执行两次。
第一次生成R文件,联合源码和aidl文件一起进行javac编译生成.class文件。
接着用dx工具将.class文件和库文件生成dex文件
第二次对res里面的资源文件进行编译
最后APKBuilder会把DEX文件与编译好的资源文件进行打包和签名生成最终的APK。