活动和计划

全面优化:性能聚焦周圆满收官

阅读用时:3 分钟

在过去的一周里,我们深入分享了各种最佳实践和指南,旨在帮助您打造更快速、更轻量、更稳定的 Android 应用。从 R8 优化器和配置文件引导的优化的基础功能,到 Jetpack Compose 的性能改进,再到提升应用性能的新指南,我们介绍了构建高性能应用所需的低投入、高回报工具。

本文是您的索引和路线图,方便您在需要优化时随时查阅这些资源。以下是本次学习之旅的五个关键要点。

使用 R8 优化工具提升应用速度

您可以做出的最有效、最省力的单一更改是完全启用 R8 优化器。它不仅能缩减应用大小,还能执行深度、全程序优化,从根本上重写代码以提高效率。重新审视您的 Keep 规则,让 R8 重新回到您的工程任务中。

我们更新和扩充了 R8 优化器的相关文档,希望能为您提供帮助。

Reddit 发现,启用 R8 完整模式后,冷启动速度提升了 40%,ANR 错误减少了 30%。

您可以在我们的博客上阅读完整的案例研究。

image.png

Disney+ 的工程师致力于提升应用性能,并不断优化应用的用户体验。有时,即使是看似微小的改变,也可能会产生巨大的影响。在检查 R8 配置时,该团队发现使用了 -dontoptimize 标志。在移除此标志并启用优化后,Disney+ 团队发现其应用的性能有了显著提升。

image.png

因此,下次有人问您如何提升应用性能时,只需将此博文链接发送给他们即可。

如需了解详情,请参阅我们第 1 天的博客:使用 R8 缩减、优化和快速跟踪应用

引导您提升效果

基准配置文件可有效消除对即时编译的需求,从而提高启动速度、滚动、动画和整体渲染性能。启动配置文件可为应用的 classes.dex 文件带来智能顺序,从而使应用启动更加轻量。

如需详细了解基准配置文件对应用性能的重要性,请参阅 Meta 的工程博客,其中分享了基准配置文件如何将各种关键性能指标提升高达 40%。

我们继续在 Jetpack Compose 1.10 中为您提升 Jetpack Compose 的性能。 可暂停的组合和可自定义的缓存窗口等功能对于在处理复杂列表项时保持零滚动卡顿至关重要。请观看最新一期 #TheAndroidShow,我们在其中对此进行了更详细的说明。

如需了解详情,请参阅我们周三发布的博文:更深入的性能考虑因素

衡量效果,只需三步

没有衡量,管理便无从谈起。我们的性能分级指南将衡量历程分为五个步骤,从易于获取的数据开始,逐步过渡到高级本地工具。

从第 1 级开始,我们将教您如何使用 Android Vitals 中现成的数据,这些数据为您提供了有关 ANR、崩溃和电池用量过多的现场数据。

我们还会教您如何升级。例如,我们将演示如何使用 Jetpack Macrobenchmark 和新的 UiAutomator 2.4 API,通过本地性能测试 达到级别 3,从而准确衡量和验证应用性能的任何变化。

如需了解详情,请参阅我们周四发布的博文: [Link to Thursday's Blog: Leveling Guide for your Performance Journey]

调试性能刚刚升级

高级优化不应导致崩溃报告无法读取。新功能旨在帮助您自信地调试 R8 和后台工作:

自动 Logcat 还原

从 Android Studio Narwhal 开始,堆栈轨迹可以在 Logcat 窗口中自动去混淆。这样,您就可以立即查看和调试可用于生产用途 build 中的任何崩溃。

缩小保留规则的范围

周二,我们揭开了修复运行时崩溃所需的保留规则的神秘面纱,强调了编写具体的成员级规则,而不是使用过于宽泛的通配符。由于这是一个重要主题,我们还为您制作了一个视频。

Android Studio Otter 3 Feature Drop 还提供了针对宽泛 Keep 规则的新 lint 检查,可帮助您解决此问题。

image.png

我们还发布了有关测试和问题排查 R8 配置的新指南,帮助您自信地正确配置。

如需了解详情,请阅读我们周二发布的博文: 配置 R8 Keep 规则并排查相关问题

后台工作

我们分享了有关调试使用 WorkManager 调度任务时可能遇到的常见场景的指南。

后台任务检查器可为您提供 WorkManager 任务的可视化表示和图表视图,帮助您调试预定工作延迟或失败的原因。此外,我们还更新了后台工作文档着陆页,重点介绍了针对特定应用场景进行优化的任务专用 API,帮助您实现更可靠的执行。

如需了解详情,请阅读我们周三发布的博文: 后台工作性能注意事项

性能优化是一个持续的过程

如果您本周成功完成了启用 R8 完整模式的挑战,那么下一步就是使用应用性能得分将性能纳入产品路线图。此标准化框架可帮助您找到最有效的待办项,以便持续改进。

在这一周的最后,我们举办了 #AskAndroid Live 问答活动,工程师们在活动中解答了您提出的关于 R8、配置文件引导优化等方面的最棘手问题。如果您错过了,请观看回放!

感谢您的参与!现在,开始构建并保持良好势头。

继续阅读