iOS是基于UNIX系統(tǒng)的恩袱,他的架構(gòu)可分為四個層面,從上到下颠印,依次是可觸摸層(Cocoa Touch layer)纲岭、媒體層(Media layer)、核心服務(wù)層(Core Service layer)线罕、核心操作層(Core OS layer)止潮。
如圖顯示:
1、觸摸層:為系統(tǒng)提供程序常用的框架钞楼,多數(shù)與界面有關(guān)喇闸,主要負責(zé)iOS設(shè)備上的觸摸交互操作。如:NoticationCenter的本地通知遠程服務(wù)询件、iAd廣告框架燃乍、GamerKit游戲工具框架、消息UI框架宛琅、圖片UI框架刻蟹、地圖框架、連接手表框架嘿辟、自動適配等
2舆瘪、媒體層:提供應(yīng)用的視聽放么的技術(shù)。如與圖像圖像相關(guān)的:CoreGraphiccs仓洼、CoreImagge、GLKit堤舒、OpenGLES色建、CoreText、ImageIO等舌缤;與聲音相關(guān):CoreAudio箕戳、OpenAL、AVFoundation国撵;與視頻相關(guān):CoreMedia陵吸、MediaPlayer、音頻傳輸?shù)腁irPlay等
3介牙、核心服務(wù)層:提供英語所需的基礎(chǔ)的系統(tǒng)服務(wù)壮虫。如:Accounds賬戶框架、廣告框架环础、數(shù)據(jù)存儲框架囚似、網(wǎng)絡(luò)連接框架、地理位置框架线得、運動框架等饶唤;其中核心的框架是:CoreFoundation框架和Foundation框架,他們定義所有的應(yīng)用使用的數(shù)據(jù)類型贯钩。注:CoreFoundation是基于C的一組接口募狂,F(xiàn)Oundation是對CoreFoundation的封裝
4办素、核心操作系統(tǒng)層:他包含大多數(shù)低級別接近硬件的功能,所含框架常被七天框架使用祸穷。Accelerate框架所含的數(shù)字信號性穿、線性代數(shù)、圖像處理的借口粱哼。針對所有的iOS設(shè)備硬件之間的差異做優(yōu)化季二,保證寫一次代碼在所有iOS設(shè)備上高效運行。CoreBluetooth框架利用藍牙和外設(shè)交互揭措,包括掃描連接藍牙設(shè)備胯舷,保存連接狀態(tài),斷開連接绊含,獲取外設(shè)的數(shù)據(jù)或者給外設(shè)傳輸數(shù)據(jù)等等桑嘶。Security框架提供管理證書,公鑰和私鑰信任策略躬充,keychain,hash認證數(shù)字簽名等等與安全相關(guān)的解決方案逃顶。
常用的iOS SDK框架
Accelerate.framework 包含加速數(shù)學(xué)和DSP函數(shù)。
AddressBook.framework 包含直接訪問用戶聯(lián)系人數(shù)據(jù)庫的函數(shù)充甚。
AddressBookUI.framework 包含顯示系統(tǒng)定義的聯(lián)系人挑選界面和編輯界面的類以政。
AssetsLibrary.framework 包含顯示用戶照片和視頻的類
AudioToolbox.framework 包含處理音頻流數(shù)據(jù)以及播放或錄制音頻的接口。
AVFoundation.framework 包含播放或錄制音頻的Objective-C接口伴找。
AudioUnit.framework 包含加載并使用音頻單元的接口盈蛮。
CFNetwork.framework 包含通過WiFi或者蜂窩無線訪問網(wǎng)絡(luò)的接口。
CoreAudio.framework 包含Core Audio框架使用的各種數(shù)據(jù)類型技矮。
CoreData.framework 包含管理應(yīng)用程序數(shù)據(jù)模型的接口抖誉。
CoreFoundation.framework 提供一些基本軟件服務(wù),包括常見數(shù)據(jù)類型抽象衰倦、字符串實用工具袒炉、群體類型實用工具、資源管理以及偏好設(shè)置樊零。
CoreGraphics.framework 包含Quartz 2D接口我磁。
CoreLocation.framework 包含確定用戶方位信息的接口。
CoreMedia.framework 包含操作音頻和視頻的底層例程驻襟。
CoreMotion.framework 包含訪問加速度計以及陀螺儀的數(shù)據(jù)的接口十性。
CoreTelephony.framework 包含訪問電話相關(guān)的信息的例程。
CoreText.framework 包含一個文本的布局渲染引擎塑悼。
CoreVideo.framework 包含操作音頻和視頻的底層例程劲适。
EventKit.framework 包含訪問用戶日歷事件數(shù)據(jù)的接口。
EventKitUI.framework 包含顯示標(biāo)準系統(tǒng)日歷界面的類厢蒜。
ExternalAccessory.framework 包含與外設(shè)進行通訊的接口霞势。
Foundation.framework 包含Cocoa Foundation層的類和方法烹植。
GameKit.framework 包含點對點連接管理接口。
iAd.framework 包含在應(yīng)用程序中顯示廣告的類愕贡。
ImageIO.framework 包含讀取或?qū)懭雸D像數(shù)據(jù)的類草雕。
IOKit.framework 包含設(shè)備所使用的接口。
MapKit.framework 包含將地圖界面嵌入到應(yīng)用程序的類固以,也可以用于查找地理編碼反向坐標(biāo)墩虹。
MediaPlayer.framework 包含顯示全屏視頻的接口。
MessageUI.framework 包含撰寫和排隊發(fā)送電子郵件信息的界面憨琳。
MobileCoreServices.framework 定義系統(tǒng)支持的統(tǒng)一類型標(biāo)識符(UTIs)诫钓。
OpenAL.framework 包含OpenAL接口。OpenAL是一個跨平臺的方位音頻庫篙螟。
OpenGLES.framework包含OpenGL ES接口菌湃。OpenGL ES框架是OpenGL跨平臺2D和3D渲染庫的跨平臺版本。
QuartzCore.framework 包含Core Animation接口遍略。惧所。
QuickLook.framework 包含預(yù)覽文件接口。
Security.framework 包含管理證書绪杏、公鑰私鑰以及信任策略的接口下愈。
StoreKit.framework 包含用于處理與應(yīng)用程序內(nèi)購買相關(guān)的財務(wù)交易。
SystemConfiguration.framework 包含用于處理設(shè)備網(wǎng)絡(luò)配置的接口蕾久。
UIKit.framework 包含iOS應(yīng)用程序用戶界面層使用的類和方法势似。