前言html
本文翻译自“为电池寿命作优化”系列文档中的最后一篇,主要介绍了测试电量相关的问题的adb命令。android
中国版官网原文地址为:https://developer.android.google.cn/topic/performance/power/test-power。shell
路径为:Android Developers > Docs > 指南 > Best practies > Performance > Optimize for battery life > Testing power-related issuesapp
发布于Android9(API等级为28)的电源管理特性影响了全部运行于该版本的应用,不管这些应用的目标版本是否为该版本。确保您应用在设备上恰当地运行是一件重要的事。测试
确保在各类条件下测试您应用的主要使用状况,来查看电源管理特性是如何与其它应用相互做用的。您可使用【Android Debug Bridge】命令来开启和关闭一些特性。优化
Android Debug Bridge 命令google
您可使用【Android Debug Bridge】shell命令来测试几种电源管理特性。翻译
关于使用ADB将您设备置于低电耗模式的信息,请查看【使用低电量模式和应用群组模式测试】。code
应用待机群组orm
您可使用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
结语
本文最大限度保持原文的意思,因为笔者水平有限,如有翻译不许确或不稳当的地方,请指正,谢谢!