问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

提升你的Android构建速度:Gradle优化技巧大揭秘!

创作时间:
作者:
@小白创作中心

提升你的Android构建速度:Gradle优化技巧大揭秘!

引用
CSDN
8
来源
1.
https://blog.csdn.net/Mr_Tony/article/details/134628872
2.
https://blog.csdn.net/chuyouyinghe/article/details/137887059
3.
https://blog.csdn.net/weixin_34945060/article/details/142268449
4.
https://www.maxiaoke.com/article/3849.html
5.
https://juejin.cn/post/7352079364611260435
6.
https://android-docs.cn/build/releases/gradle-plugin
7.
https://jimmylv.gitbooks.io/learning-microservices/content/best-practice/how_to_use_gradle_and_speed_up_build_time.html
8.
https://www.maxiaoke.com/article/3878.html

在Android开发中,Gradle作为主流构建工具,其性能直接影响开发效率。随着项目规模的扩大,构建速度往往会成为开发过程中的瓶颈。本文将从性能瓶颈分析、优化技巧、最新特性等方面,深入探讨如何提升Gradle构建速度。

01

性能瓶颈分析

要优化Gradle构建性能,首先需要识别构建过程中的性能瓶颈。以下是几种常见的分析方法:

  1. 执行时间分析:通过Gradle的构建扫描功能,可以获取详细的构建性能报告。执行以下命令可以生成构建扫描报告:

    ./gradlew build --scan
    

    构建完成后,Gradle会生成一个链接,通过该链接可以查看详细的构建性能数据。重点关注耗时较长的任务,这些任务往往是性能瓶颈的源头。

  2. 任务依赖关系分析:Gradle在构建过程中会根据任务之间的依赖关系来确定执行顺序。如果任务之间存在冗余依赖或循环依赖,将会导致构建时间增加。通过Gradle的构建报告,可以清晰地查看任务之间的依赖关系,并据此进行优化。

  3. 资源消耗分析:在构建过程中,Gradle会占用大量的CPU和内存资源。如果资源使用不当或存在资源瓶颈,将会导致构建速度下降。通过构建扫描报告,可以观察到构建过程中的内存和CPU使用情况,从而确定是否存在资源瓶颈。

  4. IO操作分析:Gradle在构建过程中会频繁进行文件读写操作,这些IO操作如果处理不当,也会导致构建速度下降。通过分析构建过程中的文件读写操作,可以找出可能导致IO延迟的问题,并进行相应的优化。

02

优化技巧

1. 配置优化

gradle.properties文件中添加以下配置:

# 启用并行构建
org.gradle.parallel=true

# 增加Gradle堆内存
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 -XX:+UseParallelGC

# 启用配置缓存
org.gradle.unsafe.configuration-cache=true
org.gradle.unsafe.configuration-cache-problems=warn

build.gradle文件中添加以下配置:

android {
    defaultConfig {
        resourceConfigurations.addAll(["en", "xxhdpi"]) // 限制资源版本
    }
}

// 使用非传递R类加速构建
android.nonTransitiveRClass=true
android.nonFinalResIds=true

2. 依赖管理优化

  • 避免不必要和未使用的依赖项:仔细审查项目的依赖关系,删除多余的依赖项。
  • 优化存储库顺序:将常用的依赖库放在存储库列表的前面,以减少搜索时间。
  • 最小化动态和快照版本:使用具体的版本号而非动态或快照版本,以避免不必要的依赖解析和下载。
  • 删除或改进自定义依赖解析逻辑:如果项目中存在自定义的依赖解析逻辑,需要确保其高效且不会引入额外的性能开销。

3. 启用并行构建和增量编译

  • 并行构建:在gradle.properties文件中设置org.gradle.parallel=true来启用并行构建。这可以充分利用多核处理器的优势,同时执行多个构建任务,显著加快构建速度。
  • 增量编译:在build.gradle文件中启用增量编译,通过只重新编译发生变化的代码部分来减少编译时间。

4. 使用Gradle的缓存机制

  • 本地缓存:Gradle会自动将构建结果和依赖项缓存到本地磁盘上。通过合理配置本地缓存,可以减少重复的任务执行和依赖下载。
  • 远程缓存:对于大型项目或团队,可以考虑使用远程缓存服务器(如Gradle Enterprise或JFrog Artifactory)来集中管理构建缓存,提高缓存的命中率和共享效果。
03

最新特性

Android Gradle插件8.7版本带来了以下重要更新:

  1. 更新Gradle和Android Gradle插件:Gradle团队和Android开发团队不断优化这些工具,以提高性能和稳定性。通过升级到最新版本,可以获得最新的性能优化和bug修复。因此,建议开发者定期检查并升级Gradle和Android Gradle插件。

  2. 升级Gradle:推荐使用Gradle 8.9版本。可以通过Android Studio中的文件 > 项目结构 > 项目菜单指定Gradle版本,也可以使用命令行更新Gradle版本。推荐使用Gradle Wrapper命令行工具,该工具会更新gradlew脚本。以下示例使用Gradle Wrapper将Gradle版本设置为8.7:

    gradle wrapper --gradle-version 8.7
    

    但是,在某些情况下这可能会失败,例如,如果您刚刚更新了AGP,并且它不再与当前的Gradle版本兼容。在这种情况下,您需要编辑gradle/wrapper/gradle-wrapper.properties文件中的Gradle分发引用。以下示例在gradle-wrapper.properties文件中将Gradle版本设置为8.7:

    distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
    
04

总结

Gradle构建性能的优化是一个持续的过程,需要开发者不断关注Gradle和Android插件的更新,及时应用新的优化技术和工具。通过识别构建过程中的性能瓶颈,并采取相应的优化措施,可以显著提升Gradle的构建性能,提高开发效率。同时,保持良好的编码习惯、减少代码和资源也是提高构建速度的重要手段。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号