在Android中模拟电池电量不足和内存不足

为了生成通知,我需要了解如何以编程方式生成电量不足和内存不足中断。 任何人都可以提供您的建议。我了解Intent。

user395494 asked 2020-08-12T05:33:45Z
6个解决方案
37 votes

触发adb shell am send-trim-memory com.example.app MODERATE回调:

adb shell am send-trim-memory com.example.app MODERATE

例如 adb shell am send-trim-memory com.example.app MODERATE

Shai Barack answered 2020-08-12T05:33:55Z
34 votes

还可以使用设备开发人员选项下的Settings > Developer options模拟低内存。

转到Settings > Developer options。在app部分下,将Background process limit更改为“无后台进程”。

现在,每次切换到另一个应用程序时,您的活动都会被杀死。 对于测试状态保存和状态恢复很有用。

Xavi Gil answered 2020-08-12T05:34:24Z
10 votes

是的,此api会触发与向ComponentCallback2注册上下文时将获得的回调,特别是在此处未提及的ComponentCallback2#onTrimMemory,因此,我想将其弄清楚。 该命令的语法为:am send-trim-memory [--user <USER_ID>] <PROCESS> [HIDDEN|RUNNING_MODERATE|BACKGROUND|RUNNING_LOW|MODERATE|RUNNING_CRITICAL|COMPLETE] 注意:此命令仅在运行棉花糖+的设备上可用

yrizk answered 2020-08-12T05:34:45Z
5 votes

在Android模拟器上,您可以通过连接到模拟器控制台并使用power命令来设置电源状态。

就内存不足而言,您只需要确保您的应用程序在后台运行时就可以处理而不会发出警告。 测试这是在Android上实际需要任务管理器的极少数情况之一,或者,如果您运行的是Android 2.2,则可以通过“设置”杀死应用程序。

有一些减少应用程序可用内存的方法,但我认为这是不必要的。

Dave Webb answered 2020-08-12T05:35:15Z
4 votes

要模拟电池电量不足警告,请按照Frank回答的方式尝试以下命令:

power capacity 10 // It will set the battery level into 10%

对于低内存:

ulimit -Sv 15000  //The current memory limit will set to 15000 Kb
Shahul3D answered 2020-08-12T05:35:39Z
3 votes

您可以使用模拟器菜单显示在我的博客中。 只需在仿真器的端口上telnet到localhost(默认值为5554),然后键入help。 按照那里的指示!

Frank answered 2020-08-12T05:35:59Z
translate from https://stackoverflow.com:/questions/3656594/simulate-low-battery-low-memory-in-android