借助 Android Studio 中的功耗性能分析器进行 A/B 测试
作者 / Android Studio 产品经理 Mayank Jain 和软件工程师 Yasser Dbeis
我们知道 Android 开发者一直希望找到能在不同 Android 设备上优化功耗的工具。
△ Android Studio 中全新的功耗性能分析器
功耗性能分析器
https://developer.android.google.cn/studio/profile/power-profiler
可分析电源轨
https://developer.android.google.cn/studio/profile/power-profiler#power-rails
功耗性能分析器可以帮助应用开发者检测以下几个方面的问题:
检测功耗超出必要范畴的未优化代码。 查找导致非必要 CPU 占用的后台任务。 识别在非必要时使设备保持唤醒状态的唤醒锁定。
真实示例:功耗性能分析器
可帮助您改善应用电池续航时间
假设您有一款应用,用户可以通过该应用购买他们最喜欢的电影。
△ 示例应用,用于演示测量功耗的 A/B 测试
视频 (c) 版权所有 Blender 基金会 | www.bigbuckbunny.org
但在视频加载时间过长的情况下,您或许会考虑:
您是否真的需要在主页上显示 4K 视频? 每次运行应用时都通过网络加载 4K 视频是否有意义? 如果您将 4K 视频替换为画质较低的视频 (但仍保留视频的观感),应用的功耗特征将会发生什么变化?
针对功耗进行 A/B 测试的
最佳场景
A/B 测试设置
第 1 步
△ 自定义运行配置
第 2 步
现在,每当您想从头运行此应用并将 CPU 性能分析器附加到应用上时,只需运行 "Profile app startup profiling with low overhead" (低开销的应用启动分析) 即可。
测试精度注意事项
以下示例场景使用整个应用启动过程来估算功耗,以达成测试的目的。但是,您可以使用更高级的方法来获取精度更高的功耗读数,例如:
仅点击视频播放器后,才隔离并测量播放视频的功耗 使用跟踪标记 API 在时间轴上标记功耗测量的开始和结束时间,然后仅测量该标记时间段内的功耗
场景 A
△ 场景 A (播放 4K 视频) 中的功耗
场景 B
在此场景中,我们在运行应用时播放画质较低的视频,并测量前 30 秒的功耗。与之前一样,我们也可以选择多次运行场景 B,并取功耗平均数。同样,Android Studio 中显示系统跟踪标记后,在时间轴选择面板中选择 0 - 30 秒的时间范围。
△ 场景 B (播放画质较低的视频) 中的功耗
WLAN、CPU Little、CPU Big、CPU Mid 及内存的总功耗约为 741 mW (毫瓦)。
总结
如果您应用的业务逻辑仍然要求在应用画面上呈现 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
推荐阅读