【发布时间】:2011-07-30 08:36:34
【问题描述】:
目前,我正在为应用商店构建我的第一个应用,因此我已阅读 here,该应用应使用少于 30 MB 的 RAM(iPhone 3G、iPhone 4)。我已经读到,在某个时间点,iOS 将开始通过从后台应用程序中随机杀死和释放声音、图像和其他资源来寻找资源。目前,我的应用程序使用了仪器中显示的约 5MB 的实时字节,但我对内存感到有些偏执:) 当应用程序针对 iPhone3G 和 iPhone4 使用少于 10MB 时,我是否安全?
问题是如果一个应用程序进入后台,那么 iOS 可以释放多少资源直到最终杀死它?如果我的应用程序进入后台,然后将启动 100 个或更多其他应用程序,那么我的应用程序会发生什么情况?我不相信 RAM 内存片对于我的应用程序来说是静态的,因为每个设备中的内存都是有限的。恕我直言,如果您开始循环打开一个新应用程序,将其发送到后台,打开另一个应用程序 - 那么设备 RAM 将在某个时间点完全使用。然后,理论上,如果您尝试打开一个新应用程序,那么一些最先打开的应用程序应该被 iOS 杀死......
目前,我正在使用纯 UIKit 构建小游戏,因此我使用了很多 UIView 和 UIViewImage 对象,我不确定如何处理这种理论上的情况。在进入后台期间,我的应用程序可能会加载很多游戏中的 UIViewImages、指向菜单 MVC 等的指针。我是否必须编写一些 reloadALL 方法来重新加载游戏的每一次和平?如果完全使用设备内存,如果 iOS 会杀死我的整个应用程序,一切都会好起来的。但如果 iOS 会在游戏或菜单对象中释放我的一些 UIViewImage,那将是不可接受的。在那种情况下,我不知道我的应用程序可能是哪种“僵尸”(“复活”后我的应用程序可能有多少条腿、手臂等)。请分享您的经验和想法:)
【问题讨论】:
标签: ios iphone memory background