前言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
結語
本文最大限度保持原文的意思,因爲筆者水平有限,如有翻譯不許確或不穩當的地方,請指正,謝謝!