我知道这听起来很疯狂但不是:)
我有一个应用程序在具有低ram内存的手机上运行时会被杀死。 为了测试这个应用程序,我需要一些“吃”内存的东西,到目前为止我通过开始很多游戏,打开应用程序,按下主页按钮以及只是吃RAM内存来做到这一点......
所以我觉得浪费10-20分钟只是为了用“垃圾”来填充RAM内存是愚蠢的,也许有办法用一些其他的虚拟应用来做这个我只会用来“吃掉”RAM内存在手机上,所以我的其他应用程序将被android系统杀死...
到目前为止有人有这个问题吗?是否可以使用一个应用程序执行此操作? 是否可以从一个应用程序中吃掉大量内存?
由于
答案 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中,或者如果需要,可以在视图中显示它们。