在使用Android Studio开发Android应用的时候,我们都知道整个构建过程是由Gradle来驱动的,由一个一个的Gradle Task串起来的。
通常,我们点击工具栏上的绿色三角之后,就开始编译运行工程,直到将APP安装到手机或者模拟器。在默认情况下,开发者通常只能看到简单的提示信息。
下面简单介绍几个技巧,帮助开发者更好的理解整个编译过程:
Gradle 技巧一: 打印每个Task的输入输出
将以下代码贴到模块的build.gradle下
gradle.taskGraph.afterTask { task ->
StringBuffer taskDetails = new StringBuffer()
taskDetails << """"-------------
name:$task.name group:$task.group : $task.description
conv:$task.convention.plugins
inputs:
"""
task.inputs.files.each{ it ->
taskDetails << " ${it.absolutePath}\n"
}
taskDetails << "outputs:\n"
task.outputs.files.each{ it ->
taskDetails << " ${it.absolutePath}\n"
}
taskDetails << "-------------"
println taskDetails
}
添加后,每次执行Gradle Task,你都能看到每一个Task的输入输出信息。
Gradle 技巧二: 打印每个模块配置的依赖信息
将以下代码贴到模块的build.gradle下
task listJars << {
configurations.compile.each { File file -> println file.absolutePath }
}
这段代码将会添加一个Gradle Task(名称为listJars),作用就是打印出compile相关的所有依赖库地址。
当然,这个compile还可以替换成kapt,annotationProcessor, provided 等。
联系方式
- Email:yanghui1986527#gmail.com
- Github: https://github.com/snowdream
- Blog: http://snowdream.github.io/blog/
- 简书:http://www.jianshu.com/u/748f0f7e6432
- 云栖博客:https://yq.aliyun.com/u/snowdream86
- QQ群: 529327615
- 微信公众号: sn0wdr1am