编译时间太长?跟我学对症下药!

本文介绍了如何针对Android项目优化编译时间,通过`gradlew build –profile`命令查看Task编译时间,定位如lint等耗时任务,并教如何关闭不必要的Task,包括在配置中修改、命令行执行和代码内禁用。最终,通过再次分析,展示关闭耗时Task后的编译速度提升。
摘要由CSDN通过智能技术生成

随着项目的不断迭代,项目越来越大,编译时间也是越来越多,特别是多module的项目更是严重,每次编译项目的时候都是痛苦的等待,那么我们怎么去发现项目里面编译时间花费的地方呢?

查看Task编译时间

通过命令窗口,输入gradlew build –profile 命令,如图
2017-07-28_222419.png

android studio就会进行编译,经过漫长的等待。并在项目的根目录–build–report底下生成一个文件(4),如图:
root.png

然后在浏览器打开该文件
2017-07-28_212603.png

我们可以看到task 总共花了10分钟。。。。。
first.png

定位耗时Task

具体的时间花费可以进入Task Execution查看,我们可以发现主要是lint这个task花费了很多时间,这里就只对这个task 进行分析。
lint.png

我们知道lint 是用来代码检查的,为了项目的代码更加的符合规范。这个是android studio 内置的task ,一般情况下是不建议把这个关闭的,这里只是为了引出关闭耗时的task,作为分析的。或者你可以刚开始开发的时候关闭,后面再开启检测,专门进行整理,按照自己的习惯安排。
setting.png

那么我们怎么去关闭这个任务呢?

如何关闭不必要的Task
  • 更改配置
    一个最简单的方法,自定义一个inspections,如图,将所有lint(我这里为了简单全部去掉,读者可以根据需要勾选)
    self.png

如果你不想修改配置,还是想关闭lint,那怎么做呢?还是有办法的!

  • 通过命令执行
    比如 ./gradlew build -x lint (linux系统执行命令要加./ windows则不需要,其中的 -x就是不执行的意思,build就是具体的命令)
    如果需要跳过多个命令的话./gradlew build -x checkstyle -x pmd -x findbugs -x lint -x test

  • 代码里面执行
    如果想所有情况都生效,可以写在gradle文件里面。
    tasks.whenTaskAdded{ task->
    if(task.name.equals(“lint”)) {
    task.enabled=false
    }
    }
    这段代码放到gradle文件的最顶端(在apply的前面执行)

查看效果

最后再一次执行 gradlew build –profile 查看相应的分析文件,花费的时间变成了以前的五分之一(公司的项目比较大,所以编译时间比较多)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值