7

我知道这听起来很疯狂,但不是:)

我有一个应用程序在 RAM 内存低的手机上运行时被杀死。为了测试这个应用程序,我需要一些“吃掉”内存的东西,到目前为止,我通过启动很多游戏、打开应用程序、按下主页按钮来完成这项工作,只是为了吃掉内存......

所以我觉得浪费 10-20 分钟只是为了用“垃圾”填充 RAM 内存是愚蠢的,也许有办法用其他一些虚拟应用程序来做到这一点,我将用它来“吃掉”手机上的 RAM 内存,所以我的其他应用程序将被android系统杀死......

到目前为止有人有这个问题吗?是否可以使用一个应用程序来做到这一点?是否有可能仅从一个应用程序中消耗大量内存?

谢谢

4

5 回答 5

5

面临同样的问题(需要在设备上填充 RAM 内存,直到我的应用程序死掉)偶然在谷歌市场上找到了一个程序:) https://play.google.com/store/apps/details?id=me.empirical .android.application.fillmemory

于 2013-10-25T12:33:46.190 回答
1

我写了一个小的免费应用程序,它完全符合您的要求。而且它是免费的,没有广告或权限:)

https://play.google.com/store/apps/details?id=com.fabsimilian.memorypump

于 2015-08-05T09:51:07.923 回答
0

在命令提示符下,键入以下内容以获取所有进程的优先级(很好)

例如: cmd >adb shell ps -p

因此,采用一个进程并将其优先级降低到某个值(范围 -20 到 +20),较小的值具有更高的优先级。

例如: adb shell renice -20 782 [adb shell renice ] 通过这种方式,我们可以让该进程吃掉更多的内存,通过这种方式

于 2014-09-09T11:55:46.593 回答
0

如果需要,只需将巨大的位图循环加载到列表中或在视图中显示它们。

于 2014-09-09T12:09:25.963 回答
0

这只是一个疯狂的猜测,但是创建一个具有一个活动类、一个抽象服务类和几个扩展抽象服务类的具体服务的应用程序。

抽象服务类会消耗内存,您可以做一些简单的事情,例如从资源中加载相同的位图并将其放入 LruCache,休眠几毫秒并重复。

然后,您将创建几个扩展抽象的服务类,但不需要进一步的代码,只需

public class MemoryEaterService_01 extends AbstractMemoryEaterService{}

现在,从活动启动开始,您将执行触发服务的明显操作。

现在聪明的部分开始了,在清单上,您将在不同的进程中声明这些服务中的每一个(基本上在具有自己的堆内存的不同 VM 中启动每个服务),如下所示:

<service android:enabled="true"
     android:exported="true"
     android:name="memoryEater_01"
     android:process="com.yourpackage.memory_eater_01" >
</service>

如果你尝试一下,请告诉我它是否有效,我很好奇。

于 2013-02-27T10:34:58.290 回答