iOS整體框架介紹
這是我參與11月更文挑戰的第18天,活動詳情檢視:2021最後一次更文挑戰
iOS整體框架
通常我們稱iOS的框架為cocoa框架. 話不多說,官方的整體框架圖如下:
簡單解釋一下: - Cocoa (Application) Layer(觸控層) - Media Layer (媒體層) - Core Services Layer(核心服務層) - Core OS Layer (核心系統操作層) - The Kernel and Device Drivers layer(核心和驅動層)
注:Cocoa (Application) Layer(觸控層)其實包含cocoa Touch layer(觸控層) 和Application Layer (應用層).應用層原本在觸控層上面,因為應用層是開發者自己實現,所以和觸控層合在一起.
其實每一層都包含多個子框架, 如下圖:
簡單解釋下(瞄一眼就得了):
-
Cocoa Touch Layer:觸控層提供應用基礎的關鍵技術支援和應用的外觀。如
NotificationCenter
的本地通知和遠端推送服務,iAd
廣告框架,GameKit
遊戲工具框架,訊息UI
框架,圖片UI
框架,地圖框架,連線手錶框架,UIKit
框架、自動適配等等 -
Media Layer:媒體層提供應用中視聽方面的技術,如圖形影象相關的
CoreGraphics,CoreImage,GLKit,OpenGL ES,CoreText,ImageIO
等等。聲音技術相關的CoreAudio,OpenAL,AVFoundation
,影片相關的CoreMedia,Media Player
框架,音影片傳輸的AirPlay框架等等 -
Core Services Layer:系統服務層提供給應用所需要的基礎的系統服務。如Accounts賬戶框架,廣告框架,資料儲存框架,網路連線框架,地理位置框架,運動框架等等。這些服務中的最核心的是
CoreFoundation
和Foundation
框架,定義了所有應用使用的資料型別。CoreFoundation
是基於C的一組介面,Foundation
是對CoreFoundation
的OC封裝 -
Core OS Layer:系統核心層包含大多數低級別接近硬體的功能,它所包含的框架常常被其它框架所使用。
Accelerate
框架包含數字訊號,線性代數,影象處理的介面。針對所有的iOS裝置硬體之間的差異做優化,保證寫一次程式碼在所有iOS裝置上高效執行。CoreBluetooth
框架利用藍芽和外設互動,包括掃描連線藍芽裝置,儲存連線狀態,斷開連線,獲取外設的資料或者給外設傳輸資料等等。Security
框架提供管理證書,公鑰和私鑰信任策略,keychain
,hash認證數字簽名等等與安全相關的解決方案。
想看更詳細的可以移步:iOS總體框架介紹和詳盡說明
我們只需要知道其中重要的框架就是UIKit和Function框架.下面說說這兩個框架.
Function框架
Foundation
框架為所有應用程式提供基本的系統服務。應用程式以及 UIKit
和其他框架,都是建立在 Foundation
框架的基礎結構之上。 Foundation
框架提供許多基本的物件類和資料型別,使其成為應用程式開發的基礎。
話不多說,我們先來看看Foundation
框架,三個圖,包括了Foundation
所以的類,圖中灰色的是iOS不支援的,灰色部分是OS X系統的。
這裡只需要知道絕大部分Function框架的類都繼承NSObject, 小部分繼承NSProxy
對於Foundation框架中的一些基本類的使用方法詳情參見:iOS開發系列—Objective-C之Foundation框架
UIKit框架
UIKit
框架提供一系列的Class
(類)來建立和管理iOS應用程式的使用者介面( UI )介面、應用程式物件、事件控制、繪圖模型、視窗、檢視和用於控制觸控式螢幕等的介面。
UIKit
框架的類繼承體系圖如下圖所示:
在圖中可以看出,responder
類是圖中最大分支的根類,UIResponder
為處理響應事件和響應鏈定義了介面和預設行為。當用戶用手指滾動列表或者在虛擬鍵盤上輸入時,UIKit
就生成事件傳送給UIResponder
響應鏈,直到鏈中有物件處理這個事件。相應的核心物件,比如:UIApplication
,UIWindow
,UIView
都直接或間接的從UIResponder
繼承 。
這裡需要知道一點:UIKit框架所有的類都繼承NSObject
UIKit框架的各個類的簡單介紹戳後面的連結:UIKit框架各個類的簡要說明