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