如何制作"吃"RAM内存的Android应用程序

Luk*_*kap 6 memory ram android memory-management

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

我有一个应用程序,当在具有低ram内存的手机上运行时会被杀死.为了测试这个应用程序,我需要一些"吃"内存的东西,到目前为止我通过启动很多游戏,打开应用程序,按下主页按钮以及只是吃RAM内存来做到这一点...

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

到目前为止有人有这个问题吗?是否可以使用一个应用程序执行此操作?是否可以从一个应用程序中吃掉大量内存?

谢谢

小智 5

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


Bud*_*ius 0

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

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

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

public class MemoryEaterService_01 extends AbstractMemoryEaterService{}
Run Code Online (Sandbox Code Playgroud)

现在,从活动启动开始,您将执行启动服务这一显而易见的事情。

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

<service android:enabled="true"
     android:exported="true"
     android:name="memoryEater_01"
     android:process="com.yourpackage.memory_eater_01" >
</service>
Run Code Online (Sandbox Code Playgroud)

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