借助 Android Studio 中的功耗性能分析器进行 A/B 测试
我们知道 Android 开发者一直希望找到能在不同 Android 设备上优化功耗的工具。
功耗性能分析器
https://developer.android.google.cn/studio/profile/power-profiler
针对低功耗进行优化的应用可以改善设备的电池和散热性能,这意味着 Android 提供的用户体验也将得到改善。
在 Pixel 6 及之后推出的 Pixel 设备上,设备端功耗管理器 (ODPM) 可提供功耗数据,该数据会按照名为 "电源轨 (Power Rails)" 的子系统进行细分。有关受支持子系统的列表,您可以查阅官方网站了解有关可分析电源轨的详细信息。
可分析电源轨
https://developer.android.google.cn/studio/profile/power-profiler#power-rails
检测功耗超出必要范畴的未优化代码。 查找导致非必要 CPU 占用的后台任务。 识别在非必要时使设备保持唤醒状态的唤醒锁定。
一旦识别出功耗问题,功耗性能分析器便可通过测试不同的假设,了解造成应用功耗过高的原因。例如,如果问题是由后台任务引起的,那么开发者可以尝试阻止任务在非必要情况下运行或长时间运行。如果问题是由唤醒锁定引起的,那么开发者可以尝试在不使用资源时释放唤醒锁定,或以更明智的方式使用它们。然后,开发者就可以使用功耗性能分析器比较变更前后的功耗区别。
本文将展示 A/B 测试帮助您理解您应用的功耗特征会如何随着同一功能的不同版本产生变化,并且帮助您有效地测量这些变化。欢迎您继续阅读,了解更多详情。
真实示例: 功耗性能分析器可帮助您改善应用电池续航时间
△ 示例应用,用于演示测量功耗的 A/B 测试
视频 (c) 版权所有 Blender 基金会 | www.bigbuckbunny.org
随着您的应用越来越流行并为人所熟知,您会发现每次启动应用时,高画质 4K 视频都需要很长时间才能加载完毕。由于该视频较大,您希望了解加载该视频对设备功耗的影响。
最初,该视频是以 4K 画质呈现的,旨在以最佳画质向您的用户展示电影的精彩片段。
您是否真的需要在主页上显示 4K 视频? 每次运行应用时都通过网络加载 4K 视频是否有意义? 如果您将 4K 视频替换为画质较低的视频 (但仍保留视频的观感),应用的功耗特征将会发生什么变化?
针对功耗进行 A/B 测试的最佳场景
通过 A/B 测试,您可以测试视频功能不同的两个变体,从而选择功耗特征更好的变体。
场景 A:运行应用时在屏幕上播放 4K 视频,并测量功耗
场景 B:运行应用时在屏幕上播放分辨率较低的视频,并测量功耗
A/B 测试设置
让我们花点时间设置 Android Studio 性能分析器,以便进行此 A/B 测试。我们需要启动应用,并将 CPU 性能分析器附加到应用上,然后触发系统跟踪 (功耗性能分析器将显示在此处)。
△ 自定义运行配置
第 2 步
△ 编辑配置设置
测试精度注意事项
仅点击视频播放器后,才隔离并测量播放视频的功耗 使用跟踪标记 API 在时间轴上标记功耗测量的开始和结束时间,然后仅测量该标记时间段内的功耗
场景 A
△ 场景 A (播放 4K 视频) 中的功耗
如您所见,WLAN、CPU 内核和内存的平均合计功耗约为 1,352 mW (毫瓦)。现在,让我们将其与场景 B 中的功耗进行比较,看看有什么变化。
场景 B
在此场景中,我们在运行应用时播放画质较低的视频,并测量前 30 秒的功耗。与之前一样,我们也可以选择多次运行场景 B,并取功耗平均数。同样,Android Studio 中显示系统跟踪标记后,在时间轴选择面板中选择 0 - 30 秒的时间范围。
总结
如果您应用的业务逻辑仍然要求在应用画面上呈现 4K 视频,您也可以探索以下策略:
将 4K 视频缓存,用于应用的后续运行。 在用户点击时才加载视频。 最初仅加载图像,在画面完全渲染后再加载视频 (延迟视频加载)。
未来计划
Android Studio Hedgehog https://developer.android.google.cn/studio/releases/past-releases/as-hedgehog-release-notes#new-power-profiler 官方文档 https://developer.android.google.cn/studio/profile/power-profiler