iOS架構詳解

weixin_34337265發表於2016-01-07

0.額,題外話,寫給自己

不久之前回到了家鄉-桐鄉。舊的地方,新的開始。新的工作地點也已經確定了-嘉善。江湖中的至理名言:自己欠下的債,總是要自己還給自己!回到了這邊,感覺年輕時候的任性終於也到了需要彌補的時候:拿起曾經的教科書,come on,少年!

1.iOS架構說

iOS系統是基於UNIX的,其系統架構如下圖所示:大致可以分為4層——Cocoa Touch層、Media層、Core Services層和Core OS層。它包含了我們使用的所有的系統基本框架。

650167-9a14303005d57aa2.jpg
iOS整體架構圖.jpg
  • Core OS層:即核心作業系統層。它是用FreeBSD和Mach所改寫的Darwin, 是開源、符合POSIX標準的一個UNIX核心。iOS系統架構最下面的一層。所以,很多情況下,它所提供功能不是直接用於應用程式中,而是應用在其他框架中。但是,在直接處理安全事務或和某個外設通訊的時候等需要使用iPhone OS系統的最基本系統行為和硬體功能的互動的時候,那時必不可少的!它主要提供的是硬體驅動, 記憶體管理,程式管理,執行緒管理(POSIX),檔案系統管理,網路(BSD Socket),以及標準輸入輸出等等功能。 包含的框架一般是C語言的庫,有:

  • Accelerate (Accelerate.framework):該框架的介面可用於執行數學、大數字以及DSP運算,例如訪問重力加計的API,在iOS 4.0的時候被引入,其API字首一般為AC;

  • Core Bluetooth (CoreBluetooth.framework): 訪問低能耗藍芽裝置的API,其API字首一般為CB;

  • External Accessory(ExternalAccessory.framework): 通過它來支援iOS裝置與繫結附件通訊,外圍配件(這些配件一般是通過基座介面或藍芽連線的)API介面,其API字首一般為EA ;

  • Security (Security.framework):管理證書、公鑰 、私鑰和安全信任策略API,其API字首一般為Sec ;

  • System (LibSystem庫) : 主要是讓開發者不受限制的訪問UNIX開發環境中的一些典型工具,它負責作業系統的各個方面,包括管理系統的虛擬記憶體、執行緒、檔案系統、網路以及程式間通訊;

  • Core Services層:即核心服務層。用於訪問較低階的作業系統服務,例如檔案存取,iCloud儲存,聯網,常見的資料型別,

    • 包含一些常用的高階功能:塊物件,Grand Central Dispatch (GCD) ,應用程式內購買(In App Purchase),XML 支援,定位服務,Sqlite等 ;
    • 包含眾多常用框架:包含Address Book Framework、CFNetwork Framework、Core Data Framework、Core Foundation Framework、Core Location Framework、Core Media Framework、Core Telephony Framework、Event Kit Framework、Foundation Framework、Mobile Core Services Framework、Quick Look Framework、Store Kit Framework、System Configuration Framework、Block Objects、Grand Central Dispatch 、In App Purchase、Location Services、SQLite、XML Support等一些框架,也基本都是基於c語言的介面;
  • Media層:顧名思義,用於處理對媒體功能:圖形技術、音訊技術和視訊技術

    • 包含Core Graphics、Core Animation、OpenGL ES、Core Text、Image I/O、Assets Library Framework、Media Player Framework、AV Foundation、OpenAL、Core Audio Frameworks、Core Media等等
  • Cocoa Touch層:觸控層,主要處理應用的核心功能,最常用。例如最常用的UIKit框架就處於這層

    • 常用高階功能:多工和資料保護,本地和蘋果遠端APNS通知服務,手勢識別器,檔案共享支援,藍芽點對點服務,標準系統檢視控制器,外部裝置支援
    • 包括Address Book UI Framework、Event Kit UI Framework、Game Kit Framework、iAd Framework、Map Kit Framework、Message UI Framework、UIKit Framework等等,這一層基本都是基於 Objective-c的介面

總結:架構總共4層,由外及裡,從表層到底層,表層是封裝完善,底層多事C語言的呼叫,

相關文章