如何提高gradle编译速度

1. Analyze

./gradlew clean build --profile

会在build/reports/profile下生成一份报告

image.png
  • 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模块化可以并行编译各个模块
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 为什么需要学Gradle? Gradle 是 Android 现在主流的编译工具,虽然在Gradle 出现之...
    真笨笨鱼阅读 1,526评论 0 0
  • 这一章节我将遵循以下内容: 单元测试 功能测试 测试覆盖率 单元测试 相信大家都有了单元测试的概念,那么好的单元测...
    justCode_阅读 483评论 0 2
  • 介绍 为了保证APP的质量,有一些自动化测试也是很重要的。很长一段时间Android Developement T...
    None_Ling阅读 1,174评论 0 0
  • 一.基本介绍 背景: 目前处于高速迭代开发中的Android项目往往需要除黑盒测试外更加可靠的质量保障,这正是单元...
    anmi7阅读 2,066评论 0 6
  • Android单元测试介绍 处于高速迭代开发中的Android项目往往需要除黑盒测试外更加可靠的质量保障,这正是单...
    东经315度阅读 3,153评论 6 37