前言
本文翻譯自“為電池壽命做優化”系列文檔中的最后一篇,主要介紹了測試電量相關的問題的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
結語
本文最大限度保持原文的意思,由於筆者水平有限,若有翻譯不准確或不妥當的地方,請指正,謝謝!