如何制作“吃”的Android应用。 RAM内存

时间:2013-02-27 09:39:49

标签: android memory memory-management ram

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

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

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

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

由于

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分: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>

如果你试试,请告诉我它是否有效,我对它非常好奇。

答案 3 :(得分:0)

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

例如:cmd&gt; adb shell ps -p

所以采取一个过程并将其优先级重新设置为某个值(范围-20到+20),较小的值具有更高的优先级。

例如:adb shell renice -20 782 [adb shell renice] 通过这种方式我们可以通过这种方式让这个过程吃更多的记忆

答案 4 :(得分:0)

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