工欲善其事,必先利其器。如果每次运行项目都要花费5-10分钟,那人的心态都要崩了。 Gradle 的生命周期可以分为大的三个部分:初始化阶段(Initialization Phase),配置阶段(Configuration Phase),执行阶段(Execution Phase)。 优化方案 从整体构建流程可以得知,我们整体上需要从三个方面进行优化:
1.初始化速度优化 当组件化程度较高时,在开发某个特定功能过程中有些组件是不需要引入的,此时可以在setting.gradle中移除不需要引入的组件模块,可以减少初始化时间 2.配置速度优化 配置阶段主要是对各个build.gradle进行解析,因此可以注意以下几点: 按需引入模块,减少build.gradle的解析
在任务执行阶段,Gradle提供了多种方式实现Task的缓存与重用(如up-to-date检测,增量编译,build-cache等)。 除了任务执行阶段,任务配置阶段有时也比较耗时,目前AGP也支持了配置阶段缓存Configuration Cache,它可以缓存配置阶段的结果,当脚本没有发生改变时可以重用之前的结果。 在越大的项目中配置阶段缓存的收益越大,module比较多的项目可能每次执行都要先配置20到30秒,尤其是增量编译时,配置的耗时可能都跟执行的耗时差不多了,而这正是configuration-cache的用武之地。 目前Configuration-cache还是实验特性,如果你想要开启的话可以在gradle.properties中添加以下代码:
3.执行速度优化
开启后会并行执行多个任务,大幅度减少编译时间,只需要在gradle.properties中添加:
增大编译内存 由于大家的电脑配置都不一样,因此具体设置多大内存需要根据个人情况进行合理配置,一般在gradle.properties里已经有相关配置,可以对该配置进行修改,例如
同时在主工程模块的build.gradle中进行修改:
开启按需构建
开启构建缓存
开启增量注解编译
4.其他速度优化 更改AS内存大小 但是如果项目比较大的话,会很容易发现KAPT是拖慢编译速度的常见原因,这也是谷歌推出KSP取代KAPT的原因。 编译打包时每个模块生成的R文件如下:
1.关闭R文件传递可以通过编译避免的方式获得更快的编译速度 从 Android Studio Bumblebee 开始,新项目的非传递 R 类默认处于开启状态。即gradle.properties文件中都开启了如下标记
开启Kotlin跨模块增量编译 在Kotlin 1.7.0中,Kotlin编译器对于跨模块增量编译也做了支持,并且与Gradle构建缓存兼容,对编译避免的支持也得到了改进。这些改进减少了模块和文件重新编译的次数,让整体编译更加迅速。 在 gradle.properties 文件中设置以下选项即可使用新方式进行增量编译:
Module源码转aar |
原文地址:https://blog.csdn.net/qq_24252589/article/details/131343373
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.msipo.com/article-756.html 如若内容造成侵权/违法违规/事实不符,请联系MSIPO邮箱:3448751423@qq.com进行投诉反馈,一经查实,立即删除!
Copyright © 2024, msipo.com