The Virtual Memory System
IOS像大多操作系统一样提供虚拟内存技术,但是与大多系统不同之处在于,IOS中的虚拟内存是与物理内存的容量相关联的,内存数据将满时,它不会将数据映射到物理磁盘上,而是将非永久性的数据清除,从而使正在运行的程序拥有足够的内存空间,如果内存仍然吃紧,系统会发出消息告知当前运行程序内存不够,所以在开发应用程序的时候有必要提供响应该消息的操作,例如弹出对话框告知用户内存不够,或清理相关内存数据等。
The Automatic Sleep Timer
IOS通过默认一个定时器来实现自动睡眠,已达到省电的目的,如果系统在一定时间内没有检测到任何触摸事件会自动进入睡眠省电状态,所以在开发某些应用程序(需要长时间运行,而且无需用户进行触摸屏幕的应用程序)时,需将该功能关闭,将应用程序对象的 idleTimerDisabled属性设为YES即可。
Multitasking Support
IOS4之后的版本提供了多任务的支持,具体实现上,用户在启动一个新的应用程序时,之前的应用程序并没有完全退出,而是运行于后台中,但是如果内存不够,系统仍然会将后台运行的程序关闭以维持当前运行的程序。
The Application Sandbox
每一个IOS应用程序都有在系统中都有自己的安全沙箱,存储于系统的某一个位置下,只有自己的应用程序可以访问当中的内容。
A Few Important Application Directories
- <Application_Home>
/
AppName.app 应用程序本身,可以理解为windows中的exe后缀名文件,不会被itunes备份。
<Application_Home>
/Documents/ 存储用户文档及应用程序数据的路径,例如存储用户输入信息的文件,itunes会备份。
<Application_Home>
/Library/Preferences 包含应用程序配置信息的路径,会被itunes备份。
<Application_Home>
/Library/Caches 缓存数据文件的路径,例如程序在被推送至后台运行时存储运行状态数据的文件会存储在这个路径下,不会被itunes备份。
<Application_Home>
/tmp/ 临时存储文件夹,例如应用程序在拷贝内容时,会先将目标文件存储在tmp下,之后清除掉,不会被itunes备份。