3.6 iPhone操作系统
iOS是专门为iPhone开发的操作系统,但现在它也用在其他的Apple设备上,包括iPad、iPod Touch和Apple TV。尽管iOS是专门为移动设备而开发的,但是iOS和Mac OS X系统拥有许多相似之处(Apple Developer, 2010)。
Apple的开发者站点中有一个iOS开发中心专区。正如第1章中提到的一样,iOS软件开发套件(SDK)包括了在iOS环境中开发和测试移动应用的工具。这些Xcode工具也允许开发者在iOS模拟器中测试自己的代码,来进一步保证应用程序功能的正确性。
iOS分层
iOS内核和Mac OS X内核是松耦合的,iOS内核包含几个用于运行相关应用程序的层级。这些层级包括OS核心层、服务核心层、媒体、Cocoa触摸和应用层。下面对iOS架构层的描述(Apple Developer, 2010):
OS核心层:该层直接作用于设备硬件并提供包括底层网络、外部配件通道和内存管理/文件系统管理的服务。“Common Crypto”就存储在此层的动态库之一,它用于协助创建和管理证书,并由Keychain Services(在服务核心层)调用,为Keychain文件提供加密/解密功能。
服务核心:和OS核心层邻接,这层提供所有应用都可以使用的基础系统服务。为了允许文件访问和支持底层数据类型,它包含一些基础内部接口(大部分基于C语言)。这些接口包括,诸如Core Foundation、CFNetwork、SQLite等功能。此层还存在安全服务,其中包括Keychain Services,此服务用于在设备的Keychain数据库中执行数据存储和加密。
媒体:媒体层包含了图形、音频和视频技术。
Cocoa触摸:Cocoa触摸层包括为应用提供需要的虚接口架构的技术。这里,大多数技术使用的是Objective-C。