如何在Android模拟器中模拟低内存?

38

在模拟器中有没有一种简单的方法来模拟低内存? 我想进行类似于 这篇文章 中所描述的资源清理。

3个回答

25

从 shell 中调用 ulimit 命令。

ulimit -Sv 10000

这会将当前内存限制设置为10,000 Kb,因此随后从此shell调用的所有应用程序都无法访问更多的内存。


14
当我尝试执行这个命令时,出现了“ulimit: illegal option -v”的错误提示。 - Joel McBeth
3
在哪个Shell上?是“命令提示符”还是“Telnet”? - Chaitanya K
我得到了ulimit: virtual memory: cannot modify limit: Invalid argument。 - Khaled Annajar
似乎可以通过使用“adb.exe”(Android调试桥)打开的“shell”输入ulimit命令。如果只有一个模拟器实例或设备存在,则可以在DosBox中输入“adb shell”(假设您在adb.exe所在的目录“sdk/platform-tools”中)。 - user1364368
这正是我一直在寻找的。非常感谢!(差不多六年后,哈哈) - JHawkZZ

2
如果您只是想触发onTrimMemory回调,那么这个方法可以实现:
adb shell am send-trim-memory
例如:adb shell am send-trim-memory com.example.app MODERATE

0

如果您的手机或模拟器有应用程序开发工具(每个模拟器都有),则可以通过另一种方式来实现此操作。打开Dev Tools,导航到开发设置并选中“立即销毁活动”复选框。这可以帮助您模拟在低内存时销毁活动的情况。


它并不会像清理缓存那样的操作。 - Someone Somewhere
这不会发送任何修剪内存事件,因此不是真正的低内存模拟。 - ABS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接