学习扔物线进阶视频课程笔记。Android构建流程

先上总的构建流程图:

Android的构建流程,就是执行gradle中各种task的过程

查看task源码
先在build.gradle中导入包:compileOnly 'com.android.tools.build:gradle:3.0.1'

然后找到com.android.application对应的实现类AppPlugin

关键Task分析:
aidl task:通过aidl命令将.aidl文件生成对应的.java文件
buildConfig task:生成BuildConfig文件,内部用JavaWriter实现
mergeResource task:将res文件夹中的资源整合,使用aapt2命令编译资源,生成.flat文件(aapt2 compile),然后把所有的.flat文件和manifest进行连接(aapt2 link),生成R.java文件和.ap_文件
javac:使用javac命令将所有的java文件编译成.class文件
自定义transform:如果有自定义的transform会在java文件编译成class之后,class编译成dex文件之前执行,达到在dex之前修改字节码的目的。
transform task:使用R8进行代码混淆和资源缩减,使用d8工具将.class文件编译成dex文件
zip:zip命令将所有的资源文件和dex文件合并压缩成.apk文件
apksigner:使用apksigner工具对apk签名,生成最终的.apk文件

以上task执行过程,就是android构建过程。