iOS-系统架构

iOS系统结构分为四级,由上至下:

  • 可触摸层(Cocoa Touch Layer)、
  • 媒体层 (Media Layer)、
  • 核心服务层(Core Services Layer)、
  • 核心系统层(Core OS Layer),

每个层级提供不同的服务:
低层级结构提供基础服务,如文件系统、内存管理、I/O操作等。
高层级结构建立在低层级结构之上提供具体服务如UI控件、文件访问等。

SystemLayers.png

可触摸层(Cocoa Touch Layer)

(1)触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。如NotificationCenter的本地通知和远程推送服务,iAd广告框架,GameKit游戏工具框架,消息UI框架,图片UI框架,地图框架,连接手表框架,自动适配等等

  • UIKit(界面相关)
  • EventKit(日历事件提醒等)
  • Notification Center(通知中心)
  • MapKit(地图显示)
  • Address Book(联系人)
  • iAd(广告)
  • Message UI(邮件与SMS显示)
  • PushKit(iOS8新push机制)
Cocoa Touch Layer.png

媒体层 (Media Layer)

(2)媒体层:提供应用中视听方面的技术,如图形图像相关的CoreGraphics,CoreImage,GLKit,OpenGL ES,CoreText,ImageIO等等。声音技术相关的CoreAudio,OpenAL,AVFoundation,视频相关的CoreMedia,Media Player框架,音视频传输的AirPlay框架等等。

  • 图像引擎(Core Graphics、Core Image、Core Animation、OpenGL ES)
  • 音频引擎 (Core Audio、 AV Foundation、OpenAL)
  • 视频引擎(AV Foundation、Core Media)


    Media Layer.png

核心服务层(Core Services Layer)

https://www.codingke.com/article/176
(3)核心服务层:提供给应用所需要的基础的系统服务。如Accounts账户框架,广告框架,数据存储框架,网络连接框架,地理位置框架,运动框架等等。这些服务中的最核心的是CoreFoundation和Foundation框架,定义了所有应用使用的数据类型。CoreFoundation是基于C的一组接口,Foundation是对CoreFoundation的OC封装。

  • CFNetwork(网络访问)
  • Core Data(数据存储)
  • Core Location(定位功能)
  • Core Motion(重力加速度,陀螺仪)
  • Foundation(基础功能如NSString)
  • Webkit(浏览器引擎)
  • JavaScript(JavaScript引擎)
Core Services Layer.png

核心系统层(Core OS Layer)

(4)核心操作系统层包括:包含大多数低级别接近硬件的功能,它所包含的框架常常被其它框架所使用。Accelerate框架包含数字信号,线性代数,图像处理的接口。针对所有的iOS设备硬件之间的差异做优化,保证写一次代码在所有iOS设备上高效运行。CoreBluetooth框架利用蓝牙和外设交互,包括扫描连接蓝牙设备,保存连接状态,断开连接,获取外设的数据或者给外设传输数据等等。Security框架提供管理证书,公钥和私钥信任策略,keychain,hash认证数字签名等等与安全相关的解决方案。
操作系统内核服务(BSD sockets、I/O访问、内存申请、文件系统、数学计算等)

  • 本地认证(指纹识别验证等)
  • 安全(提供管理证书、公钥、密钥等的接口)
  • 加速 (执行数学、大数字以及DSP运算,这些接口iOS设备硬件相匹配)


    Core OS Layer.png

常用的iOS SDK框架

常用的iOS SDK框架.png

Accelerate.framework 包含加速数学和DSP函数。
AddressBook.framework 包含直接访问用户联系人数据库的函数。
AddressBookUI.framework 包含显示系统定义的联系人挑选界面和编辑界面的类。
AssetsLibrary.framework 包含显示用户照片和视频的类
AudioToolbox.framework 包含处理音频流数据以及播放或录制音频的接口。
AVFoundation.framework 包含播放或录制音频的Objective-C接口。
AudioUnit.framework 包含加载并使用音频单元的接口。
CFNetwork.framework 包含通过WiFi或者蜂窝无线访问网络的接口。
CoreAudio.framework 包含Core Audio框架使用的各种数据类型。
CoreData.framework 包含管理应用程序数据模型的接口。
CoreFoundation.framework 提供一些基本软件服务,包括常见数据类型抽象、字符串实用工具、群体类型实用工具、资源管理以及偏好设置。
CoreGraphics.framework 包含Quartz 2D接口。
CoreLocation.framework 包含确定用户方位信息的接口。
CoreMedia.framework 包含操作音频和视频的底层例程。
CoreMotion.framework 包含访问加速度计以及陀螺仪的数据的接口。
CoreTelephony.framework 包含访问电话相关的信息的例程。
CoreText.framework 包含一个文本的布局渲染引擎。
CoreVideo.framework 包含操作音频和视频的底层例程。
EventKit.framework 包含访问用户日历事件数据的接口。
EventKitUI.framework 包含显示标准系统日历界面的类。
ExternalAccessory.framework 包含与外设进行通讯的接口。
Foundation.framework 包含Cocoa Foundation层的类和方法。
GameKit.framework 包含点对点连接管理接口。
iAd.framework 包含在应用程序中显示广告的类。
ImageIO.framework 包含读取或写入图像数据的类。
IOKit.framework 包含设备所使用的接口。
MapKit.framework 包含将地图界面嵌入到应用程序的类,也可以用于查找地理编码反向坐标。
MediaPlayer.framework 包含显示全屏视频的接口。
MessageUI.framework 包含撰写和排队发送电子邮件信息的界面。
MobileCoreServices.framework 定义系统支持的统一类型标识符(UTIs)。
OpenAL.framework 包含OpenAL接口。OpenAL是一个跨平台的方位音频库。
OpenGLES.framework包含OpenGL ES接口。OpenGL ES框架是OpenGL跨平台2D和3D渲染库的跨平台版本。
QuartzCore.framework 包含Core Animation接口。。
QuickLook.framework 包含预览文件接口。
Security.framework 包含管理证书、公钥私钥以及信任策略的接口。
StoreKit.framework 包含用于处理与应用程序内购买相关的财务交易。
SystemConfiguration.framework 包含用于处理设备网络配置的接口。
UIKit.framework 包含iOS应用程序用户界面层使用的类和方法。

参考:
https://www.jianshu.com/p/58bc11c800e4
http://www.cnblogs.com/LyChen/p/6408009.html
https://developer.apple.com/documentation/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容