【发布时间】:2011-02-26 12:56:13
【问题描述】:
我正在编写一个充当媒体播放器(视频和照片)的 iPad 应用程序。我知道应用程序有 2GB 的大小限制,但是这是下载时应用程序的大小限制吗?或者在应用程序的整个生命周期中对沙盒大小的限制?例如,如果我的小应用稍后将各种媒体文件下载到其沙箱中,从而使用户总计超过 2GB(应用 + 下载的媒体),该怎么办?
谢谢!
【问题讨论】:
我正在编写一个充当媒体播放器(视频和照片)的 iPad 应用程序。我知道应用程序有 2GB 的大小限制,但是这是下载时应用程序的大小限制吗?或者在应用程序的整个生命周期中对沙盒大小的限制?例如,如果我的小应用稍后将各种媒体文件下载到其沙箱中,从而使用户总计超过 2GB(应用 + 下载的媒体),该怎么办?
谢谢!
【问题讨论】:
除了设备本身的剩余容量外,沙盒的大小没有限制。
【讨论】:
我昨晚做了一个小测试,当我最终退出时,我的沙盒已经超过 8 GB。
【讨论】:
沙盒大小不受限制,根据 iPhone 应用程序编程指南:
为了管理程序内存,iPhone OS 使用基本上与 Mac OS X 中相同的虚拟内存系统。在 iPhone OS 中,每个程序仍然有自己的虚拟地址空间,但是(与 Mac OS X 不同)它的可用虚拟内存受到限制由可用的物理内存量决定。这是因为当内存已满时,iPhone OS 不会将易失性页面写入磁盘。相反,虚拟内存系统会根据需要释放易失性内存,以确保正在运行的应用程序具有所需的空间。它通过删除未使用且包含只读内容(例如代码页)的内存页来实现此目的。如果以后再次需要这些页面,可以随时将它们加载回内存中。
如果内存继续受限,系统也可能会向正在运行的应用程序发送通知,要求它们释放额外的内存。所有应用程序都应响应此通知并尽其所能帮助减轻内存压力。有关如何在应用程序中处理此类通知的信息,请参阅“观察内存不足警告”。
【讨论】:
IIRC,Apple 将 d/led 应用程序的大小限制为 20MB。
【讨论】: