iOS系統架構
iOS系統架構分下面四層,每層都建立在它的下面一層基礎之上。
-
Cocoa Touch(可觸摸層):代表UIKit
負責用戶的觸摸交互操作,為程序提供常用框架,大部分框架與界面有關
-
Mdia(媒體層):代表Core Graphics/Core Animation/Open GL ES
通過它我們可以使用各種媒體文件,可以繪制圖形,制作動畫以及音頻視頻錄制
-
Cocoa Services(核心服務層):代表Foundation/Core Data
通過它可以訪問一些服務
-
Core OS(核心操作系統層)
可以直接和硬件設備交互,我們可以做內存管理,文件系統,電源管理等操作
延伸
OC是C語言的擴展集,OS X和iOS平臺上所有應用程序都是用OC語言開發的
OS X:蘋果電腦系統
iOS: iPhone/iPad移動系統
蘋果提供了兩種工具包,都是用OC語言開發的
Cocoa:針對OS X系統
Cocoa Touch:針對iOS系統
什么是框架
框架是一種把頭文件,庫,圖片,聲音等內容聚集在一個獨立單元中的集合體
每個框架都是一個重要的技術集合,通常包含數十甚至上百個頭文件,每個框架都有一個主頭文件,它包含了框架內所有的頭文件,通過在頭文件中使用#import,可以訪問框架內的所有功能
系統框架Foundation和UIKit
在你開發時,主要使用的框架就是這兩個,我們知道,基本所有的框架都是建立在Foundation框架上面的
Foundation
Foundation框架是以CoreFoundation框架為基礎創建的,CF框架是用C語言寫的,函數和變量名稱以CF開頭
使用Foundation框架我們可以:
1-NString
2-NSArray和NSDictionary(只能存對象)
3-NSNumber(可以將基本數據類型封裝成對象)
4-NSData
5-NSValue(可以封裝任意值)
6-NSNull
7-操作URL
8-執行異步代碼UIKit
UIKit提供了用戶界面層使用的類和方法,UIKit框架類組織架構圖如下:
系統Core框架
- Core Data
可以創建并管理模型對象 - Core Graphics
可以創建復雜圖形,包含Quartz 2D接口 - Core Animation
創建高級動畫和虛擬效果 - Core Foundation
基本軟件服務,包括常見數據類型,字符串,資源管理及偏好設置等 - Core Location
包含確定用戶方位信息接口,它可以使用硬件設備來進行定位服務,不需要地圖,精度相對略差,省電。 - Core Media
包含操作音頻和視頻的底層 - Core Motion
包含訪問加速器和陀螺儀的數據接口 - Core Text
包含一個文本渲染的布局引擎,可以滿足開發中遇到的關于文字排版的所有需求,包括富文本,表情,符號畫等 - Core Image
圖像處理,也可以人臉識別
系統Kit框架
- MapKit
能夠使應用程序做一些地圖展示與交互的相關功能,必須有地圖,精度相對較高,費電。 - GameKit
可以為游戲添加一些有趣的功能,例如游戲中的語音聊天,集成GameCenter - HealthKit
可以分享健康和健身數據,也可以自動導入計步數據 - HomeKit
智能家居 - CloudKit
基于iCloud的云端數據存儲 - ResearchKit
專為醫學研究者打造的一款軟件基礎架構,可以基于這個架構創建出各種健康應用
系統其它框架
- Quartz Core
提供用戶視覺反饋,我們最終看到的界面顯示都是圖層混合的結果,圖層就是Quartz Core中的CALayer - OpenGL ES
提供2D和3D的繪圖工具,如模擬飛行,視頻游戲 - Accelerate
加速器 - AddressBook
地址簙 - AddressBookUI
地址薄UI - MessageUI
發短信 - AssetsLibrary
資源庫框架 - AudioToolbox
音頻工具箱 - AudioUnit
音頻單元 - AVFoundation
可以使用和創建基于時間的視聽媒體的框架 - CFNetwork
訪問網絡的接口 - MediaPlayer
可以實現視頻播放 - SystemConfiguration
測試連接網絡狀態 - AudioToolbox
是一個音頻接口,用于在線流媒體音樂的播放