显著减少项目gradle编译时间

http://blog.csdn.net/zhang___yong/article/details/65947914


原文来自https://zeroturnaround.com/rebellabs/making-gradle-builds-faster/


1.对build过程进行配置实现编译优化:

(1)首先了解如何用命令行进行编译:

使用git命令行进入项目根目录,然后执行

  1. ./gradlew :app:assembleDebug --dry-run  
这样显示编译成功后也会在底部显示编译的总时间。

第一次编译会对依赖等进行处理,时间会长一些。

(2)显示编译的详细时间

只需要在命令行中加入--profile,也就是

  1. ./gradlew :app:assembleDebug --dry-run --profile  
项目目录的build/reports/profile下就会出现一个html文件,里面显示了编译的几个环节以及所需的时间:


(3)设置按需编译:

我们可以设置gradle只在需要编译的地方进行编译,这个功能是graldle的一个隐藏功能,只需要在命令行中加入--config-on-demand即可

再次编译后就会发现编译时间有明显减少。


(4)设置daemon:

gradle是通过jvm进行编译的,而daemon可以大大减少加载jvm和classes等的时间,使用只需要加入--daemon


2.使用最新版本的gradle:

gradlex每次更新工程师都会对它进行优化,所以使用最新的gradle自然会获得最快的速度

(文档里的更新部分没有看懂,待指教)

同理也应该使用最新的java


3.固定依赖版本:

在gradle文件里设置的各种依赖库的版本是可以动态指定的,版本号使用+代替。但是这样的话会带来很多问题,首先,编译时编译器会连接网络寻找这个库的最新版本,然后有可能会进行更新,耗费很多时间。其次,由于版本的不确定,在将项目移植到别的地方时也会出现版本不对应编译不通过的问题。所以,将库的版本写死是最好的选择。



4.将项目模块化:

将项目进行模块化的架构设计有什么好处呢,gradle拥有将这些模块进行并行编译的能力,这显然会大大提高效率。为了支持这种并行操作,需要在命令行中加入--parallel。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值