2013-02-27 184 views
4

我知道这听起来很疯狂,但不:)如何使Android应用程序“吃”的RAM内存

我当上具有较低的RAM内存手机运行就会被杀死的应用程序。 要测试这个应用程序,我需要的东西,'吃'内存,我做到目前为止,通过启动很多游戏,打开应用程序,按回家按钮,只是吃RAM内存...

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

到目前为止有没有人有这个问题?并可以用一个应用程序做到这一点? 仅仅从一个应用程序就可以吃掉很多内存吗?

感谢

+0

您是否尝试过使用仿真器与低内存设置? – kamituel 2013-02-27 09:43:19

+0

我需要一个真正的设备:(,仿真器不是一个选项,我知道我可以设置AVD设置,但我可以帮助我解决这种情况 – Lukap 2013-02-27 09:43:52

+0

创建几个应用程序使用不同的软件包名称,但使用相同的代码内存位,但保留一些后台线程运行,直到你点击一个按钮使它停止。确保后台线程正在访问一个大的内存对象(如大图像)。你只能用一个应用程序占用这么多的内存,所以你会 – 2013-02-27 09:46:56

回答

0

这只是胡乱猜测,但在这里创建一个活动类,一个抽象服务类和扩展抽象的几项具体服务的应用程序。

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

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

public class MemoryEaterService_01 extends AbstractMemoryEaterService{} 

现在从活动启动你会做发射服务的明显的事情。

现在聪明的部分开始,在清单,你会宣布这些服务的每一个不同的进程(基本上开始有自己的堆内存在不同的虚拟机服务的每一个)是这样的:

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

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

0
在命令提示符下

,键入以下命令来获取所有与它们的优先级(很好)工艺

例如:CMD> ADB壳PS -p

所以采取一个过程和使用renice其优先级为某个值(范围为-20至+20)更低的值,有更多的优先级。

如:亚行外壳renice只能-20 782 [亚行外壳renice只能] 通过这种方式,我们可以让这个过程吃更多的内存,通过这种方式

0

巨大的位图只加载到列表中周期或显示他们在查看你是否想要。

相关问题