当前位置:   article > 正文

一直在构建版本_教你如提升Gradle90%的构建速度

gradle 一直在构建

一、第一个最有效的办法


检查你使用的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
  1. #Enable daemon
  2. org.gradle.daemon=true
  3. # Try and findout the best heap size for your project build.
  4. org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
  5. # Modularise your project and enable parallel build
  6. org.gradle.parallel=true
  7. # Enable configure on demand.
  8. org.gradle.configureondemand=true

三、去掉耗时任务

在项目的Terminal下运行如下命令:

gradle build -profile

可以获取构建报告,它是以HTML的形式展示的。

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

第一次执行

89ecb0e2abead688b9c4a9a220f028ba.png

由于第一次没有构建缓存,因此第一次比较慢,用时5分11秒。

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

第二次执行

f11988be7ec4a497def8afc4baf67fb4.png

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

fdc8fd0cb070df198ba2358c84965c14.png

在Task Execution(任务执行)中,可以看到每一个项目中耗时最长的竟然是lint任务。lint任务就是静态代码检测,不管你有没有用到lint,默认都会执行这个任务。
由于我们项目中并没有用到lint,所以我们将lint任务去掉,也就是在执行build命令时加上-x lint这个参数,即

gradle build -x lint

第三次执行

8ae9cc2e2e97dc11bf70121e823472df.png

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

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

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

四、结论

Gradle的插件版本对Gradle的构建速度相差很大,由于Gradle版本升级一直致力于提升构建速度,所以强烈推荐升级Gradle版本,以获取最大限度的构建速度,再经过Gradle的一些配置和减少耗时任务,完全可以在40秒之内构建好一个项目。

作者:AndroidHint 来源:掘金
链接: https:// juejin.im/post/5e491366 e51d45270b7d55fb
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/244387
推荐阅读
相关标签
  

闽ICP备14008679号