iOS系統(tǒng)架構(gòu)淺析
概述
iOS系統(tǒng)整體上可以分為四層,自上而下分別為可觸摸層(Cocoa Touch Layer)、媒體層(Media Layer)、核心服務(wù)層(Core Services Layer)、核心系統(tǒng)層(Core OS Layer),每個(gè)層級(jí)提供不同的服務(wù)。如下圖所示:
</br>
我們常用的UIKit框架和Foundation框架分別處于這四層架構(gòu)的Cocoa Touch層和Core Services層。一般來說低層級(jí)的為高層級(jí)提供服務(wù)。
</br>下面我們整體來看看每一層級(jí)的主要功能
可觸摸層(Cocoa Touch Layer)
可觸摸層主要提供用戶交互相關(guān)的服務(wù)如界面控件、事件管理、通知中心、地圖,包含以下常用框架:
UIKit(UIKit.framework)
Notification Center(NotificationCenter.framework)
MapKit(MapKit.framework)
Address Book (AddressBookUI.framework)
PushKit(PushKit.framework)
媒體層(Media Layer)
媒體層主要提供圖像引擎、音頻引擎、視頻引擎框架
包含以下常用框架:
- 圖像引擎
Core Graphics(CoreGraphics.framework)
Core Image (CoreImage.framework )
Core Animation
OpenGL ES(OpenGLES.framework) - 音頻引擎
Core Audio(CoreAudio.framework )
AV Foundation(AVFoundation.framework ) - 視頻引擎
AV Foundation(AVFoundation.framework )
Core Media(MediaPlayer.framework)
核心服務(wù)層(Core Services Layer)
核心服務(wù)層為程序提供基礎(chǔ)的系統(tǒng)服務(wù)例如網(wǎng)絡(luò)訪問、瀏覽器引擎、定位、文件訪問、數(shù)據(jù)庫(kù)訪問等,主要包含以下常用框架:
CFNetwork(CFNetwork.framework)
Core Data(CoreData.framework)
Core Location(CoreLocation.framework)
Core Motion(CoreMotion.framework)
Foundation(CoreFoundation.framework)
Webkit(Webkit.framework)
JavaScript(JavaScriptCore.framework)
核心系統(tǒng)層(Core OS Layer)
核心系統(tǒng)層提供為上層結(jié)構(gòu)提供最基礎(chǔ)的服務(wù)如操作系統(tǒng)內(nèi)核服務(wù)、本地認(rèn)證、安全、加速等,它可以直接和硬件設(shè)備進(jìn)行交互
操作系統(tǒng)內(nèi)核服務(wù)(BSD sockets、I/O訪問、內(nèi)存申請(qǐng)、文件系統(tǒng)、數(shù)學(xué)計(jì)算等)
本地認(rèn)證(指紋識(shí)別驗(yàn)證等)
安全(提供管理證書、公鑰、密鑰等的接口)
加速 (執(zhí)行數(shù)學(xué)、大數(shù)字以及DSP運(yùn)算,這些接口iOS設(shè)備硬件相匹配)