一、第一个最有效的办法
检查你使用的Gradle插件版本,是不是最新的。如果不是最新的,请升级到Gradle插件的最新版本。
Gradle在升级过程中一直对构建速度做了优化,升级到Gradle最新版本后,能将构建速度提升80%,这是最有效的办法。
二、Gradle的一些配置项
1、Gradle Daemon
开启Gradle的守护进程来构建项目:
org.gradle.daemon=true
2、Parallel Project Execution
如果你要构建一个多Module并且依赖关系比较复杂的项目,那么你可以使用并行项目执行:
org.gradle.parallel=true
3、Global gradle.properties
在Gradle主目录中配置的属性优先级高于在项目中配置的属性。当你并不想一个个项目的去改动配置时,可以定义一份常用的Gradle配置文件放在Gradle的主目录下,它的路径如下:
/Users/用户名/.gradle/gradle.properties
#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
三、去掉耗时任务
在项目的Terminal下运行如下命令:
gradle build -profile
可以获取构建报告,它是以HTML的形式展示的。
基于上述的优化,我们看一下当前的构建报告:
第一次执行
由于第一次没有构建缓存,因此第一次比较慢,用时5分11秒。
第二次执行
相比较第一次,已经有了很大的进步了,用时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 命令。
四、结论
Gradle的插件版本对Gradle的构建速度相差很大,由于Gradle版本升级一直致力于提升构建速度,所以强烈推荐升级Gradle版本,以获取最大限度的构建速度,再经过Gradle的一些配置和减少耗时任务,完全可以在40秒之内构建好一个项目。