Android加快你的编译速度

文章介绍了Gradle构建的三个阶段,并提出了针对初始化、配置和执行阶段的优化策略。重点在于执行速度优化,包括并行编译、增大编译内存、开启构建缓存和增量编译。此外,还提到了配置阶段的优化如按需引入模块和开启ConfigurationCache,以及AndroidStudio的离线模式、KAPT迁移到KSP、关闭R文件传递和Kotlin跨模块增量编译等技术来提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工欲善其事,必先利其器。如果每次运行项目都要花费5-10分钟,那人的心态都要崩了。
Gradle构建流程

Gradle 的生命周期可以分为大的三个部分:初始化阶段(Initialization Phase),配置阶段(Configuration Phase),执行阶段(Execution Phase)。

优化方案

从整体构建流程可以得知,我们整体上需要从三个方面进行优化:

初始化速度优化
配置速度优化
执行速度优化
其中执行的过程占比是最大的,所以重心放在执行速度优化上。

1.初始化速度优化

当组件化程度较高时,在开发某个特定功能过程中有些组件是不需要引入的,此时可以在setting.gradle中移除不需要引入的组件模块,可以减少初始化时间

2.配置速度优化

配置阶段主要是对各个build.gradle进行解析,因此可以注意以下几点:

按需引入模块,减少build.gradle的解析
build.gradle中尽量少做耗时操作,例如读取系统时间动态配置apk的名称组成
在开发阶段不是必要执行的任务,可以写判断避免这些任务的配置,例如一些字节码插桩,性能监控之类的。

开启Configuration Cache

在任务执行阶段,Gradle提供了多种方式实现Task的缓存与重用(如up-to-date检测,增量编译,build-cache等)。

除了任务执行阶段,任务配置阶段有时也比较耗时,目前AGP也支持了配置阶段缓存Configuration Cache,它可以缓存配置阶段的结果,当脚本没有发生改变时可以重用之前的结果。

在越大的项目中配置阶段缓存的收益越大,module比较多的项目可能每次执行都要先配置20到30秒,尤其是增量编译时,配置的耗时可能都跟执行的耗时差不多了,而这正是configuration-cache的用武之地。

目前Configuration-cache还是实验特性,如果你想要开启的话可以在gradle.properties中添加以下代码:

# configuration cache
org.gradle.unsafe.configuration-cache=true
org.gradle.unsafe.configuration-cache-problems<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉亭下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值