在Android中模拟低电量和低内存

use*_*494 46 android

为了生成通知,我需要知道如何以编程方式生成低电量和低内存中断.任何人都可以提供你的建议.我知道意图.

小智 38

触发onTrimMemory回调:

adb shell am send-trim-memory <process-name> <level>

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

  • 错误:未知命令'send-trim-memory' (8认同)
  • 解决了它.错误消息是错误的(键是"可能"一词).在这种情况下实际发生的事情是它没有识别MODERATE,尽管它被列为有效级别.使用`RUNNING_CRITICAL`工作. (8认同)
  • `adb shell am send-trim-memory com.myapp MODERATE``错误:未能设置级别 - 可能是未知进程:com.myapp`.知道为什么吗?那个包肯定存在.此外,我很难找到该命令的文档. (7认同)
  • 完善.我也喜欢'RUNNING_CRITICAL`以获得完整的效果. (4认同)
  • @MaksimDmitriev我在使用物理设备时遇到了这个错误,但它在模拟器上适用于我 (3认同)
  • @AutonomousApps 它不会让您发送对应用程序的当前状态无效的 TRIM_MEMORY 级别。例如,如果您的应用程序在前台,那么对于高于 TRIM_MEMORY_RUNNING_CRITICAL 的任何级别,它都将无法发送修剪事件。这花了我 10 多分钟才弄明白。 (2认同)

Xav*_*Gil 36

也可以使用Background process limit设备开发人员选项模拟低内存.

去吧Settings > Developer options.在该app部分下,将"更改Background process limit无后台进程"

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

  • 可悲的是,这根本不是真的.这是[很好的解释](http://android.stackexchange.com/a/62393)这个选项究竟是什么. (6认同)

小智 10

是的,如果您向ComponentCallback2注册了一个上下文,这个api会触发相同的回调,特别是这里没有提到的ComponentCallback2#onTrimMemory,所以我想我会说清楚.此命令的语法是: am send-trim-memory [--user <USER_ID>] <PROCESS> [HIDDEN|RUNNING_MODERATE|BACKGROUND|RUNNING_LOW|MODERATE|RUNNING_CRITICAL|COMPLETE] 注意:此命令仅在运行Marshmallow +的设备上可用

  • 非常真实 我只能在运行棉花糖及更高版本的设备上使用它。 (2认同)

Dav*_*ebb 5

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

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

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