gradle编译性能剖析

对于较大的项目或者实现大量自定义编译逻辑的项目,您可能需要深入了解编译流程才能找到瓶颈。为此,您可以分析 Gradle 执行编译生命周期的每个阶段和每个编译任务所需的时间。例如,如果编译分析报告显示 Gradle 在配置项目时花费了过多的时间,则表明您需要将自定义编译逻辑移出配置阶段。此外,如果 mergeDevDebugResources 任务占用了大量编译时间,则表明您还需要将图片转换为 WebP 格式停用 PNG 处理

要通过分析报告提高编译速度,通常需要在启用分析功能的情况下运行编译,对编译配置进行一些调整,以及进行更多分析来观察更改的结果。

要生成和查看编译分析报告,请按以下步骤操作:

  1. 在 Android Studio 中打开项目后,依次选择 View > Tool Windows > Terminal,以在项目的根目录下打开命令行。
  2. 输入以下命令,以执行整洁编译版本。在分析编译版本时,您应该在分析的每个编译之间执行整洁编译,这是因为如果某个任务的输入内容(例如源代码)未发生更改,Gradle 就会跳过它。因此输入内容未发生更改的第二个编译版本始终会以更快的速度运行,因为任务不会重复运行。在编译版本之间运行 clean 任务可以确保您能够分析完整的编译流程。
        // On Mac or Linux, run the Gradle wrapper using "./gradlew".
        gradlew clean
    
  3. 使用以下标记为您的某个产品性质(例如“dev”性质)执行调试编译版本:
        gradlew --profile --offline --rerun-tasks assembleFlavorDebug
     
    
    • --profile:启用分析。
    • --offline:禁止 Gradle 提取在线依赖项。这样可以确保因 Gradle 尝试更新依赖项而导致的任何延迟都不会干扰您的分析数据。您应该已将项目编译一次,以确保 Gradle 已经下载和缓存您的依赖项。
    • --rerun-tasks:强制 Gradle 重新运行所有任务并忽略任何任务优化。
  4.  

    编译完成后,使用 Project 窗口转到 project-root/build/reports/profile/ 目录(如图 1 所示)。

  5. 右键点击 profile-timestamp.html 文件,然后依次选择 Open in Browser > Default。报告应与图 2 中显示的类似。您可以查看报告中的每个标签以了解您的编译版本,例如,Task Execution 标签显示了 Gradle 执行各个编译任务所花费的时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值