1. Analyze
./gradlew clean build --profile
会在build/reports/profile
下生成一份报告
- Configuration: 配置项目的时间
- Dependency Resolution:解析依赖的时间
- Task Execution:任务执行的时间
2. Performing Tuning
gradle.properties中设置一下几项
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
minSdkVersion 设置为 21也可以加快编译(thanks to ART?? 没试过)
一种典型的情况是unit test时间会很长:
不要用Robolectric,Robolectric is slow
Disable Unit Test Reports
android {
testOptions.unitTests.all {
reports.html.enabled = false
reports.junitXml.enabled = false
}
}
- 并行执行unit test
testOptions.unitTests.all {
maxParallelForks = 8
}
- 如果unit test占用内存很多,在执行一定数量case后,可以fork出新的vm以执行新的case(防止当个vm内存溢出)
testOptions.unitTests.all {
forkEvery = 200
}
- 使app模块化可以并行编译各个模块