iPhone开发学习总结:应用程序运行时环境

本文总结了iOS开发中的关键知识点,包括虚拟内存系统如何处理内存不足的情况,自动休眠定时器的工作原理,多任务支持的实现以及应用沙箱的安全机制。开发者需要注意在低内存情况下应用程序的行为,以及如何管理自动休眠以适应不同应用需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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备份。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值