测试与功耗相关的问题

Android 9(API 级别 28)中发布的功耗管理功能会影响在该版本上运行的所有应用,无论这些应用是否以该版本为目标。确保您的应用在这些设备上正常运行非常重要。

在各种条件下测试您的应用的主要用例,以了解功耗管理功能如何相互作用。您可以使用 Android 调试桥 (adb) 命令来开启和关闭某些功能。

Android 调试桥 (adb) 命令

您可以使用 adb 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