iPhone OS体系结构

iPhone OS有着绚丽优雅的外观,同时也有着稳定安全的性能。iPhone OS的图形系统采用OpenGL ES作为底层驱动,同时支持硬件加速。iPhone OS的体系结构大致可分为以下4层:

Cocoa Touch(可轻触层)

Media(媒体层)

Core Service(核心服务层)

Core OS(核心操作系统层)


图1-7所示为iPhone OS的体系结构图。

iPhone OS体系结构

1、Core OS

Core OS提供了最底层的功能,iPhone OS的许多技术都是基于Core OS的。在应用程序里面开发者虽然不会直接用到Core OS提供的功能,但是所引用的其他库很有可能会用到Core OS提供的功能,或者依赖于Core OS。另外,当开发者在处理安全问题或者与硬件进行沟通的时候,会直接用到Core OS提供的功能。图1-8是Core OS的组成模块图。

iPhone OS体系结构

(1)Accelerate Framework:包含了数学计算、大号码以及数字信号处理等一系列接口。使用这个库的好处在于,开发者可以对其进行重写,用以优化基于iPhone OS的不同设备的硬件特征,并且只需要写一次就可以确保它在全部的设备上有效运行。

(2)External Accessory Framework:负责iPhone OS设备与各种附属设备的沟通。iPhone OS设备可以通过自带的数据线、WIFI和蓝牙与附属设备进行沟通,External Accessory Framework提供接口让开发者可以获取各种附属设备的信息并且进行初始化,然后就可以放心地发送指令从而控制设备。

(3)Security Framework:用来保证应用程序数据管理的安全性。这个库会提供一些接口让开发者管理证书、公共密钥、私有密钥和信任策略。它支持安全加密随机数生成,同时也支持密钥的证书存储。

(4)System层:包括内核、驱动和OS的各种UNIX底层接口。其中内核是基于Mach( 用于Mac OS X的微内核)的,它主要负责处理虚拟内存管理、线程、文件系统、网络和进程间通信。驱动主要为各种硬件和系统库之间提供接口,iPhone OS提供接口让应用程序可以访问OS的各种功能,开发者可以通过LibSystem库来调用它们,这些接口都是基于C语言的,它们可以访问以下功能。

线程

网络

文件系统

标准输入输出

Bonjour 和DNS服务

本地信息

内存管理

数学计算

注 Bonjour也称为零配置联网,能自动发现IP网络上的电脑、设备和服务。Bonjour 使用工业标准的IP协议来允许设备自动发现彼此,而不需输入IP地址或配置DNS服务器。

Bonjour是法语中“你好”的意思,使用Bonjour的设备在网络中自动传播它们自己的服务信息并聆听其他设备的服务信息,设备之间就像在打招呼,这也是命名为Bonjour的原因。Bonjour使局域网中的系统和服务即使在没有网络管理员的情况下也能很容易被找到。Bonjour显示局域网内支持组播域名协议的设备和应用的名称,采用multicast DNS来解决局域网内设备的命名冲突。

2、Core Service

Core Service由两个部分组成:一是核心服务的一系列库;二是基于核心服务的一些高阶功能。其中核心库如下:

(1)Address Book Framework:用于地址簿管理,开发者可以通过这个库管理电话联系人列表,访问联系人列表的数据库,然后进行添加、删除和编辑等其他操作。

(2)CFNetwork Framework:提供了一系列的接口,可以让开发者更方便、快捷地进行网络沟通。开发者无须关注过多的细节,可以花更多的精力在应用程序上面。

(3)Core Data Framework:用于管理基于MVC模式(Model模型、View视图、Controller控制器)应用程序的数据模型,它是一个关系数据管理系统。 Core Data提供了在存储器中保存、管理、更改以及获取数据等基础功能。

(4)Core Foundation Framework:是C语言库,它为应用程序提供了各种基础设施。

(5)Core Location Framework:提供定位的功能,这个库可以运用GPS、3G和WIFI来侦测用户的位置,地图应用程序可以使用这个功能来显示用户在地图上的位置。开发者可以将这个功能加入到应用程序中实现相关的功能,如开发者可以根据位置来提供附近餐馆、商店以及银行等的搜索服务。

(6)Core Media Framework:提供比较底层的媒体处理,很多应用程序很少用到这个库。

(7)Core Telephony Framework:提供接口让用户可以收集到电话商的服务信息,例如,用户可以知道自己用的是哪个电信商的服务,知道自己的设备现在是不是在打电话。

(8)Event Kit Framework:可以让用户在自己的设备上访问日历事件,用它来获取现有的日历事件或者添加一个新的事件,例如进行闹钟控制。

(9)Foundation Framework:提供的功能和Core Foundation Framework提供的功能差不多,区别在于它是Objective-C库。

(10)Mobile Core Services Framework:为UTI(Uniform Type Identifiers,统一类型的标识符)定义了比较底层的数据类型。

(11)Quick Look Framework:可以让用户对文件的内容进行预览。

(12)Store Kit Framework:为应用程序与App Store(应用程序商店)之间的通信提供服务,应用程序可以通过该库从App Store接受那些用户想要提供的产品信息,并显示出来供用户购买。当用户需要购买某件产品时,程序调用Store kit来收集购买信息。

注:App Store是苹果公司为iPhone和iPod Touch以及iPad创建的服务,允许用户从App Store浏览和下载一些为了iPhone SDK开发的应用程序。用户可以购买或免费试用,将该应用程序直接下载到iPhone或iPod Touch上。应用程序则包括游戏、日历、翻译程序、图库以及许多实用的软件。

(13)System Configuration Framework:可以让用户决定设备的网络配置,通过该库来决定是否要使用WIFI连接或者是否连接某个网络服务。

基于核心服务的高级功能如下:

Block Objects:是一个C语言构造体,开发者可以将它插入到C代码或者Objective-C代码中。从本质上来说,一个Block Objects就是一个封闭函数,或者说是伴随这个函数的数据。一般来说,Block可以运用下面几种情形:

代替代理和代理方法

代替回调函数

与分发堆栈一起实现异步工作

Grand Central Dispatch:简称GCD,可以大大提高工作效率。它可以根据处理器的数量调整应用程序的工作负荷,而且只会使用任务所需数量的线程,从而提高应用程序的效率。例如,在不使用GCD时,如果一个应用程序在最大负载时需要20条线程,那么即使在空载时,它也会建立20条线程,并占用相关资源。而使用GCD时则不然,GCD会释放闲置资源,加快整个系统的响应速度。

In App Purchase:是基于Store Kit Framework实现的高级功能,通过这个功能用户可以让自己的应用程序很好地处理账号、App Store与应用程序之间的关系。

Location Services:基于Core Location Framework实现的服务功能,可以让应用程序给用户定位,查找用户当前位置。

SQLite(嵌入式数据库):可以让开发者在应用程序里面嵌入一个轻量级的SQL数据库,无须建立一个分开的数据库服务器,就可以在应用程序里面创建一个Database文件,然后进行列表和记录管理。

XML Support可以让开发者对XML文件进行解析。

3、Media

媒体层主要提供图像渲染、音频播放和视频播放的功能。

(1)开发者可以用以下技术进行图像渲染:

用Core Graphics进行图像的2D渲染。

用Core Animation来提供动画效果。

用OpenGL ES来提供对2D和3D渲染的支持,支持硬件加速。

Core Text提供了流畅的字体渲染引擎。

Image I/O 提供接口用以各种格式图像的读写。

Assets Library Framework用以对用户照片库里的照片和视频进行访问。

(2)媒体层的Audio模块提供了以下功能:

Media Player Framework可以让用户很容易地访问iTunes 的最新版本库并且支持列表播放。

注 iTunes 是供 Mac 和 PC 使用的一款免费应用程序,能管理和播放数字音乐和视频,让全部媒体文件保持同步。它还是用户电脑、iPod Touch、iPhone 和 iPad 上的虚拟商店,随时随地满足一切娱乐所需。

AV Foundation提供了简单易用的接口用以管理音频回放和记录。

OpenAL 提供跨平台的接口支持音频播放。

Core Audio Frameworks提供了一系列简单的接口,开发者可以通过这些接口进行音频播放和记录,也可以用它们来播放系统声音,同时管理本地音频文件或者音频流的多通道缓冲和回放。

(3)媒体层的Video模块提供了以下功能:

Media Player Framework为开发者提供了一系列简单易用的接口,开发者可以在应用程序里面调用这些接口来进行视频播放。

AV Foundation用以管理视频的抓频和回放。

Core Media提供底层的服务,供上面的功能调用。

4、Cocoa Touch

作为整个OS的最顶层,这一层是最为核心的部分,它还负责处理屏幕上的多点触摸事件、文字的输出、图片网页的显示、相机或文件的存取以及加速感应的部分。下面是这一层所包含的库:

(1)Address Book UI Framework:可以用来显示Address Book数据库中联系人的数据。这个基于C的框架可以提供一个图形界面来访问用户的联系人信息,同时用户也可以创建新的联系人,删除或者编辑已存在的联系人。

(2)Event Kit UI Framework:基于Event Kit Framework,它主要为查看和编辑事件提供视图控制器。

(3)Game Kit Framework:为游戏应用程序提供点对点的网络连接和语音通信来支持对战游戏。这个框架支持所有的应用程序,并且无须配对。

(4)iAd Framework :让应用程序播放广告,这样可以为应用程序带来额外的收入。

(5)Map Kit Framework:可以让应用程序中嵌入地图和Map Kit,支持Google Mobile Maps的服务和缩放功能,自定义标签功能以及自定义位置信息等。

(6)Message UI Framework:用于编写和整理邮件。

(7)UIKit Framework:是这一层的核心部分,它提供了关键的基础设施、界面渲染以及事件驱动等。


你可能感兴趣的:(iPhone)