我知道模拟器上有“模拟内存警告”。但是,很多人都说该应用应该在真实设备上进行测试。如何在真实设备上测试内存不足情况?在后台运行尽可能多的应用程序?有更好的方法吗?
感谢。
答案 0 :(得分:10)
您可以使用私有API发送低内存消息:
[[UIApplication sharedApplication] _performMemoryWarning];
虽然请记得从发布中移除否则您的应用可能会被拒绝;)
Kudos转到:http://forum.148apps.com/showpost.php?p=8603&postcount=3
答案 1 :(得分:5)
上一个答案无法在我的机器上编译。解决方法是调用performSelector:
,如下所示:
[[UIApplication sharedApplication] performSelector:@selector(_performMemoryWarning)];
答案 2 :(得分:1)
你可以尝试一些技巧:
在低内存委托调用中放入一些NSLog语句,看看你的应用是否在正常使用中进行了压力测试。
如果不是:
在运行您的应用之前,启动几个在Safari中下载的大型慢速网站;然后在测试您的应用时,将一些大型电子邮件发送到测试设备上的推送帐户。
对于压力测试目的(使用预处理器定义,不在您的分发版本中),malloc额外的10或20或某些测试数兆字节,您的应用程序不需要,写入一些垃圾/兰特( )数据弄脏页面,不要释放它(你可以故意泄漏25MB的最大压力)。
您还可以创建自己的测试背景应用程序,例如播放静音的音乐播放器,在测试应用程序之前将其置于后台,并让背景音频回调分配并弄脏一些大块数据。