怎样将Gradle构建速度提高90%

1、第一个最有效的办法

检查你使用的Gradle插件版本,是否是最新的。若是不是最新的,请升级到Gradle插件的最新版本。缓存

Gradle在升级过程当中一直对构建速度作了优化,升级到Gradle最新版本后,能将构建速度提高80%,这是最有效的办法。bash

2、Gradle的一些配置项

一、Gradle Daemon

开启Gradle的守护进程来构建项目:markdown

org.gradle.daemon=truejvm

二、Parallel Project Execution

若是你要构建一个多Module而且依赖关系比较复杂的项目,那么你可使用并行项目执行:gradle

org.gradle.parallel=true优化

三、Global gradle.properties

在Gradle主目录中配置的属性优先级高于在项目中配置的属性。当你并不想一个个项目的去改动配置时,能够定义一份经常使用的Gradle配置文件放在Gradle的主目录下,它的路径以下:ui

/Users/用户名/.gradle/gradle.propertiesspa

#Enable daemon
org.gradle.daemon=true

# Try and findout the best heap size for your project build.
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# Modularise your project and enable parallel build
org.gradle.parallel=true

# Enable configure on demand.
org.gradle.configureondemand=true
复制代码

3、去掉耗时任务

在项目的Terminal下运行以下命令:插件

gradle build -profile
复制代码

能够获取构建报告,它是以HTML的形式展现的。code

基于上述的优化,咱们看一下当前的构建报告:

第一次执行

因为第一次没有构建缓存,所以第一次比较慢,用时5分11秒。

注意:若是Gradle检测到配置文件有修改,如gralde.properties、build.gradle文件等,则会从新发起构建,时间也会比较长。

第二次执行

相比较第一次,已经有了很大的进步了,用时1分26秒左右。咱们再来看一下这一分26秒是用在哪里了:

在Task Execution(任务执行)中,能够看到每个项目中耗时最长的居然是lint任务。lint任务就是静态代码检测,无论你有没有用到lint,默认都会执行这个任务。

因为咱们项目中并无用到lint,因此咱们将lint任务去掉,也就是在执行build命令时加上-x lint这个参数,即

gradle build -x lint
复制代码

第三次执行

能够看到将lint任务去掉后,构建时间只用了26秒,这个时间仍是能够接受的。

通过上面的优化后,Gradle构建速度从以往平均4分钟,减小到了26秒,优化率达到了89%。

Tips:使用Android Studio任务栏直接点击运行按钮是不能去掉lint任务的,因此为了方便构建后安装应用,可使用 gradle installDebug -x lint 命令。

4、结论

Gradle的插件版本对Gradle的构建速度相差很大,因为Gradle版本升级一直致力于提高构建速度,因此强烈推荐升级Gradle版本,以获取最大限度的构建速度,再通过Gradle的一些配置和减小耗时任务,彻底能够在40秒以内构建好一个项目。