Gradle构建过程学习
学习gradle编译构建过程,本意是想看看平时执行的gradle assembleDebug指令到底是怎么从无到有构造出来app的,通过阅读一位jianshu上大佬写的关于gradle编译过程的文章,发现这个真的还是挺复杂的,gradle和ant等工具一样,属于一个编译过程的框架,基于这个框架是可以做很多事情的,例如现在gradle的两大概念,task和transform(两者关系:addTransform 方法在执行过程中,会将 Transform 包装成一个 AndroidTask 对象,所以transfrom最终会被转换成一个task)。
出处:(https://en.proft.me/2017/10/15/enable-multidex-android-application/)
首先根据图里面可以看出来gradle的大致构建过程,至上而下的看,左边是app资源的打包提取,分别是生成对应的R文件以及压缩资源到包里,中间是app的代码,右边是aidl的翻译,还有一种是反射注解生成的java文件,这时就把这几个java的文件通过java compiler去生成class文件,然后将自身的class以及三方库的class都打包到dex文件中,这时候dex以及资源文件,和其他文件都打包压缩到apk中,这时再经过对apk文件的加密最终就能得到目标文件了。
接下来就是源码分析,具体的就是jianshu 作者的分析了,链接:https://www.jianshu.com/p/56197562ad47