iOS 四层架构
主要内容
- iOS 四层架构
iOS 四层架构
iOS整体架构分为四层,分别是
- Cocoa Touch
- Media
- Core Services
- Core OS
Cocoa Touch
该层提供了构建iOS应用的一些基本系统服务(如多任务、触摸输入、推送通知等)和关键框架如下:
| 框架 | 前缀 | 说明 |
|---|---|---|
| Address Book UI | AB | 访问用户的联系人信息 |
| Event Kit UI | EK | 访问用户的日历事件数据 |
| Game Kit | GK | 提供能够进行点对点的网络通信的API |
| iAd | AD | 在应用中嵌入广告 |
| Map Kit | MK | 在应用中嵌入地图和地理信息编码等 |
| Message UI | MF | 提供与发送E-mail相关的API |
| TW | 提供发送Twitter的接口 | |
| UIKit | UI | 提供UI类 |
Media
Media层提供了图形、音频、视频和AirPlay技术,包括的框架如下:
| 框架 | 前缀 | 说明 |
|---|---|---|
| Assets Library | AL | 提供访问用户的图片和视频的接口 |
| AudioToolbox | Audio | 录制或播放音频、音频流以及格式转换 |
| AudioUnit | Audio, AU | 提供使用内置音频单元服务,以及音频处理模块 |
| AV Foundation | AV | 提供播放与录制音频和视频的Objective-C接口 |
| Core Audio | Audio | 提供录制、制作、播放音频的C语言接口 |
| Core Graphics | CG | 提供Quartz 2D接口 |
| Core Image | CI | 提供操作视频和静态图像的接口 |
| Core MIDI | MIDI | 提供用于处理MIDI数据低层的API |
| Core Text | CT | 提供渲染文本和处理字体的简单、高效的C语言接口 |
| Core Video | CV | 提供用于处理音频和视频的API |
| Image I/O | CG | 包含一些读写图像数据类 |
| GLKit | GLK | 包含了构建复杂OpenGL ES应用的Objective-C实用类 |
| Media Player | MP | 包含全屏播放接口 |
| OpenAL | AL | 包含了OpenAL(跨平台的音频)的C语言接口 |
| OpenGL ES | EAGL, GL | 包含OpenGL ES(跨平台的2D/3D图形库)的C语言接口 |
| Quartz Core | CA | 提供动画接口类 |
| Sprite Kit | SK | 是苹果提供的基于2D和2.5D游戏的开发引擎,可以开发iOS和Mac OS X下的游戏 |
| Scene Kit | SCN | 是一种高级别3D图形框架,能够帮助我们在APP中创建3D动画场景和特效 |
Core Services
该层提供了iCloud、应用内购买、SQLite数据库和XML支持等技术,包括的主要框架如下:
| 框架 | 前缀 | 说明 |
|---|---|---|
| Accounts | AC | 用于访问用户的Twitter账户(iOS 5之后才有此API) |
| AddressBook | AB | 访问用户的联系人信息 |
| AdSupport | AS | 获得iAD广告标识 |
| CFNetwork | CF | 提供了访问Wi-Fi网络和蜂窝电话网络的API |
| Core Data | NS | 提供管理应用数据的ORM接口 |
| CoreFoundation | CF | 它是iOS开发中最基本的框架,包括数据集 |
| Core Location | CL | 提供定位服务的API |
| CoreMedia | CM | 提供AV Foundation框架使用的底层媒体类型。可以精确控制音频或视频的创建及展示 |
| CoreMotion | CM | 接收和处理重力加速计以及其他的运动事件 |
| CoreTelephony | CT | 提供访问电话基本信息的API |
| Event Kit | EK | 访问用户的日历事件数据 |
| Foundation | NS | 为Core Foundation框架的许多功能提供Objective-C封装,是Objective-C最为基本框架 |
| JavaScriptCore.framework | JS | 提供了基于Objective-C语言封装的标准JavaScript对象, 通过该框架可以实现Objective-C与JavaScript之间的相互调用 |
| MobileCoreServices | UT | 定义统一类型标识符(UTI)使用的底层类型 |
| Newsstand Kit | NK | 提供在后台下载杂志和新闻的API接口(iOS 5之后才有此API) |
| Pass Kit | PK | 提供访问各种优惠券的API(iOS 6之后才有此API) |
| QuickLook | QL | 该框架可以预览无法直接查看的文件内容,例如打开PDF文件 |
| Social | SL | 提供社交网络访问API,中国区提供新浪微博API(iOS 6之后才有此API) |
| Store Kit | SK | 提供处理应用内置收费的资金交易 |
| SystemConfiguration | SC | 用于确定设备的网络配置(例如,使用该框架判断Wi-Fi或者蜂窝连接是否正在使用中) ,也可以用于判断某个主机服务是否可以使用 |
| Cloud Kit | CK | 开发iCloud应用的新型API |
| Health Kit | HK | 开发健康和运动等服务的API,在一个位置上访问共享的健康相关的讯息 |
| Home Kit | HM | 能够与用户家中连接的设备通信并进行控制 |
Core OS
该层提供了一些低级功能,开发中一般不直接使用它。该层包括的主要框架如下:
| 框架 | 前缀 | 说明 |
|---|---|---|
| Accelerate | AC | 访问重力加速计API |
| Core Bluetooth | CB | 访问低能耗蓝牙设备API |
| External Accessory | EA | 访问外围配件API接口 |
| Generic Security Services | gss | 提供一组安全相关的服务 |
| Security | CSSM,Sec | 管理证书、公钥、私钥和安全信任策略API |
| LocalAuthentication | LA | 通过用户指定的安全策略进行安全认证 |
以上内容主要参考 iOS开发指南:从零基础到App Store上架(第三版)。
也可参考以下文章:
这篇博客的博主也有其他很棒的博客 ~
本文介绍了iOS的四层架构,包括Cocoa Touch、Media、Core Services和Core OS层,详细阐述了各层的主要功能和服务,如多任务、触摸输入、媒体处理、iCloud支持等。同时提到了相关开发框架和资源。

3632

被折叠的 条评论
为什么被折叠?



