Wear OS 上的性能是应用需要注意的重要事项,因为与较大的移动设备相比,许多 Wear OS 设备的 CPU 和 GPU 资源有限。随着 Material 3 Expressive 中引入了更丰富的动画和动态效果,您应该验证并提升应用关键工作流的性能。
使用 Jetpack Compose 性能指南,配置和开发应用,以便使用 Jetpack Compose 实现最佳性能。本文档重点介绍了该指南中介绍的一些技术。
创建并遵循性能衡量策略,以验证这些技术是否按预期在您的应用中发挥作用。
基本性能改进技巧
首先使用最有效的性能工具类型:基准配置文件(包括启动配置文件)和 R8 代码优化器。
将 Compose 依赖项更新到 1.8 或更高版本,该版本引入了多项重要的新功能,并提高了库的整体稳定性。如需了解如何更新,请参阅声明依赖项中的说明。如需了解详情,请参阅有关 1.8 版本的博文和 Compose 的新变化 I/O 演讲。
基准配置文件
如需提升应用性能,请使用基准配置文件。将代表应用关键工作流的类和方法分组,系统可以使用基准配置文件预编译这些类和方法。这样可以缩短启动时间,减少卡顿帧,并提供额外的性能改进。
每个 Jetpack Compose 库都随附自己的配置文件规则。如果应用依赖于某个库,该库的配置文件规则会与应用的 APK 自动合并,并与其一起分发,以便进行预编译。
使用以下方法验证基准配置文件:
- 使用宏基准测试。
- 使用特定的 ADB 命令验证应用的配置文件配置状态。 性能衡量和验证指南中介绍了这两种方法的步骤。
启动配置文件
作为基准配置文件的子集,启动配置文件会进一步优化其包含的类和方法,以缩短应用启动延迟时间。
添加启动配置文件会增加应用的 APK 大小,因此在向正式版添加启动配置文件之前,请务必评估 APK 大小与启动延迟时间之间的权衡。
如需开始使用,请参阅创建启动配置文件。
R8
使用 R8 编译器缩减和优化应用。R8 会移除未使用的代码和资源、重写代码以优化运行时性能,等等。
在提升性能概览指南中,阅读 R8 的注意事项,包括移除未使用资源的关键步骤。
性能衡量和验证
如需了解 Android 上的常规性能测量策略,请参阅应用性能测量概览。本部分介绍了该文档中讨论的一些技术。
选择用于衡量的 build 变体
虽然调试模式有助于发现许多问题,但它会产生严重的性能开销,不使用基准配置文件,并且可能难以发现可能影响性能的代码问题。
如需准确了解应用的性能,请在发布模式下运行应用。
仅根据使用发布 build 选项在真实设备上运行的应用所执行的测试,得出有关性能的最终结论。
不过,在进行基准测试时,请使用基准 build 变体,该变体与发布调试有一些关键区别。如需了解详情,请参阅 Macrobenchmark 设置指南。
验证应用的基准配置文件
首先,检查您的商家资料的状态:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
如果状态不是 status=speed-profile,就表示尚未应用配置文件规则来优化应用。
规则需要使用后台作业来应用,该作业会在设备充电和空闲时运行。如需手动触发此作业,请在应用启动并经过足够的时间后运行以下命令,让配置文件安装程序在后台引导配置文件。此过程通常需要大约 40 秒。
adb shell cmd package bg-dexopt-job
然后,重新运行上一个命令,验证状态是否为 speed-profile。
如需了解在安装时执行优化的情况,请参阅旁加载基准配置文件。
UI Automator API
UI Automator API 可通过编程方式自动执行交互。在检查用户体验历程以寻找潜在优化机会时,可以使用此 API 对离散的界面部分进行基准测试。
Macrobenchmark 测试
Macrobenchmark 用于测试应用的较大用例,尤其是应用启动和复杂的界面操作。如需开始使用,请参阅实现指南。
如需查看使用宏基准验证基准配置文件性能的示例,请参阅 GitHub 上的性能示例。
JankStats 库
请使用 JankStats 库跟踪和分析应用的性能问题。
如需查看示例,请参阅 GitHub 上的 JankStats 示例。
系统跟踪
借助 Material 3 Expressive 引入的新动画类型,您可以使用 Android Studio 中的系统跟踪功能,检查和诊断可能存在问题的用户体验历程中的延迟时间。借助这些信息,您可以验证基准配置文件的内容,并找出代码逻辑中可能存在的低效问题。
其他工具
除了性能改进工具之外,您还可以使用其他工具来提高工作效率和改进工作流程。
Android Studio 效率提升工具
Android Studio 提供了多种工具,可减少您在确定性能改进方面花费的时间。
例如,使用实时编辑和可组合项预览等工具,您可以识别卡顿的界面元素以及应用代码中的相关区域,以便提升性能。
在一组能够准确代表目标用户群的实体 Wear OS 设备上运行所有最终性能测试。
在迁移到 Material 3 Expressive 时,这一点尤为重要,因为该版本会为您的应用引入灵活字体和形状变形等功能。
如果您要从视图迁移,请参阅迁移指南和有关 Jetpack Compose 性能的最佳实践,以验证应用界面在使用 Jetpack Compose 时是否具有良好的性能。
其他资源
如需及时了解 Android 性能方面的最新动态,请参阅应用性能指南中的最新资讯和视频。