【官网翻译】性能篇(五)为电池寿命做优化——测试电源相关的问题
前言
本文翻译自“为电池寿命做优化”系列文档中的最后一篇,主要介绍了测试电量相关的问题的adb命令。
中国版官网原文地址为:https://developer.android.google.cn/topic/performance/power/test-power。
路径为:Android Developers > Docs > 指南 > Best practies > Performance > Optimize for battery life > Testing power-related issues
发布于Android9(API等级为28)的电源管理特性影响了所有运行于该版本的应用,无论这些应用的目标版本是否为该版本。确保您应用在设备上恰当地运行是一件重要的事。
确保在各种条件下测试您应用的主要使用情况,来查看电源管理特性是如何与其它应用相互作用的。您可以使用【Android Debug Bridge】命令来开启和关闭一些特性。
Android Debug Bridge 命令
您可以使用【Android Debug Bridge】shell命令来测试几种电源管理特性。
关于使用ADB将您设备置于低电耗模式的信息,请查看【使用低电量模式和应用群组模式测试】。
应用待机群组
您可以使用ADB来手动分配您的应用到应用待机群组。为了改变应用的群组,首先使用如下命令模拟拔除设备:
$ adb shell dumpsys battery unplug
然后使用如下命令:
$ adb shell am set-standby-bucket packagename active|working_set|frequent|rare
您也可以使用如下命令一次设置多个包:
$ adb shell am set-standby-bucket package1 bucket1 package2 bucket2...
要检查应用在哪个群组,请运行
$ adb shell am get-standby-bucket [packagename]
如果您不传入packagename参数,该命令会列出所有应用的群组。应用也可以通过调用新方法UsageStatsManager.getAppStandbyBucket()找出它在运行时的群组。
后台限制
要手动应用后台限制,运行如下命令:
$ adb shell cmd appops set packagename RUN_ANY_IN_BACKGROUND ignore
要移除后台限制,运行如下命令:
$ adb shell cmd appops set packagename RUN_ANY_IN_BACKGROUND allow
电池节省器
有几个命令来测试您的应用在低电量条件下是如何表现的。
★ 注意:您也可以使用设备“设置” > “电池节省器”界面来将设备置于电池节省模式。
要模拟设备被拔除,使用命令:
$ adb shell dumpsys battery unplug
要测试低电量条件下设备如何表现,使用命令:
$ adb shell settings put global low_power 1
一旦您测试完成,您应该通过如下命令撤销手动的设备设置:
$ adb shell dumpsys battery reset
该系列其它文档
【对低电耗模式和应用待机模式进行针对性优化】:https://developer.android.google.cn/training/monitoring-device-state/doze-standby
【监控电池电量和充电状态】:https://developer.android.google.cn/training/monitoring-device-state/battery-monitoring
【确定和监控插接状态和基座类型】:https://developer.android.google.cn/training/monitoring-device-state/docking-monitoring
【确定和监控连接状态】:https://developer.android.google.cn/training/monitoring-device-state/connectivity-monitoring
结语
本文最大限度保持原文的意思,由于笔者水平有限,若有翻译不准确或不妥当的地方,请指正,谢谢!