版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2018.05.15 |
前言
前面寫了那么多篇主要著眼于局部問題的解決,包括特定功能的實現(xiàn)爱咬、通用工具類的封裝尺借、視頻和語音多媒體的底層和實現(xiàn)以及動畫酷炫的實現(xiàn)方式等等。接下來這幾篇我們就一起看一下關于iOS系統(tǒng)架構(gòu)以及獨立做一個APP的架構(gòu)設計的相關問題精拟。
iOS系統(tǒng)架構(gòu)
iOS系統(tǒng)架構(gòu)如下所示:
具體哪一層包含什么框架如下所示:
下面看一下詳細的信息:
1. 觸摸層(Cocoa Touch)
為應用程序開發(fā)提供了各種常用的框架并且大部分框架與界面有關燎斩,本質(zhì)上來說它負責用戶在iOS設備上的觸摸交互操作虱歪。如NotificationCenter
的本地通知和遠程推送服務,iAd廣告框架栅表,GameKit游戲工具框架笋鄙,消息UI框架,圖片UI框架怪瓶,地圖框架等等萧落。
下面看幾個重要的框架:
AddressBook.framework
:包含直接訪問用戶聯(lián)系人數(shù)據(jù)庫的函數(shù)。AddressBookUI.framework
:包含顯示系統(tǒng)定義的聯(lián)系人挑選界面和編輯界面的類劳殖。EventKit.framework
:包含訪問用戶日歷事件數(shù)據(jù)的接口铐尚。EventKitUI.framework
:包含顯示標準系統(tǒng)日歷界面的類。GameKit.framework
:包含點對點連接管理接口哆姻。iAd.framework
:包含在應用程序中顯示廣告的類宣增。MapKit.framework
:包含將地圖界面嵌入到應用程序的類,也可以用于查找地理編碼反向坐標矛缨。MessageUI.framework
:包含撰寫和排隊發(fā)送電子郵件信息的界面爹脾。UIKit.framework
:包含iOS應用程序用戶界面層使用的類和方法。
下面看一下這個示意圖
2. 媒體層(Media)
提供應用中視聽方面的技術箕昭,如圖形圖像相關的CoreGraphics
灵妨、CoreImage
、GLKit
落竹、OpenGL ES
泌霍、CoreText
、ImageIO
等等述召。聲音技術相關的CoreAudio
朱转、OpenAL
、AVFoundation
积暖,視頻相關的CoreMedia
藤为、Media Player
框架,音視頻傳輸?shù)?code>AirPlay框架等等夺刑。
下面看其中幾個重要的框架:
AssetsLibrary.framework
:包含顯示用戶照片和視頻的類缅疟。AudioToolbox.framework
:包含處理音頻流數(shù)據(jù)以及播放或錄制音頻的接口。AudioUnit.framework
:包含加載并使用音頻單元的接口遍愿。AVFoundation.framework
:包含播放或錄制音頻的Objective-C接口存淫。CoreAudio.framework
:包含Core Audio框架使用的各種數(shù)據(jù)類型。CoreGraphics.framework
:包含Quartz 2D接口错览。ImageIO.framework
:包含讀取或?qū)懭雸D像數(shù)據(jù)的類纫雁。MediaPlayer.framework
:包含顯示全屏視頻的接口。OpenAL.framework
:包含OpenAL接口倾哺。OpenAL是一個跨平臺的方位音頻庫轧邪。OpenGLES.framework
:包含OpenGL ES接口刽脖。OpenGL ES框架是OpenGL跨平臺2D和3D渲染庫的跨平臺版本。QuartzCore.framework
:包含Core Animation接口忌愚。
看一下下面示意圖曲管。
3. Core Services(核心服務層)
提供給應用所需要的基礎的系統(tǒng)服務。如Accounts賬戶框架硕糊,廣告框架院水,數(shù)據(jù)存儲框架,網(wǎng)絡連接框架简十,地理位置框架檬某,運動框架等等。這些服務中的最核心的是CoreFoundation
和Foundation
框架螟蝙,定義了所有應用使用的數(shù)據(jù)類型恢恼。
下面看幾個重要的框架:
CFNetwork.framework
:包含通過WiFi或者蜂窩無線訪問網(wǎng)絡的接口。CoreData.framework
:包含管理應用程序數(shù)據(jù)模型的接口胰默。CoreFoundation.framework
:提供一些基本軟件服務场斑,包括常見數(shù)據(jù)類型抽象、字符串實用工具牵署、群體類型實用工具漏隐、資源管理以及偏好設置。CoreLocation.framework
:包含確定用戶方位信息的接口奴迅。CoreMedia.framework
:包含操作音頻和視頻的底層例程青责。CoreMotion.framework
:包含訪問加速度計以及陀螺儀的數(shù)據(jù)的接口。CoreTelephony.framework
:包含訪問電話相關的信息的例程取具。CoreVideo.framework
:包含操作音頻和視頻的底層例程爽柒。請不要直接使用該框架。Foundation.framework
:包含Cocoa Foundation層的類和方法者填。MobileCoreServices.framework
:定義系統(tǒng)支持的統(tǒng)一類型標識符(UTIs)QuickLook.framework
:包含預覽文件接口。StoreKit.framework
:包含用于處理與應用程序內(nèi)購買相關的財務交易做葵。SystemConfiguration.framework
:包含用于處理設備網(wǎng)絡配置的接口占哟。
看一下下面示意圖。
4. 核心操作系統(tǒng)層(Core OS)
包含大多數(shù)低級別接近硬件的功能酿矢,它所包含的框架常常被其它框架所使用榨乎。Accelerate框架包含數(shù)字信號,線性代數(shù)瘫筐,圖像處理的接口蜜暑。針對所有的iOS設備硬件之間的差異做優(yōu)化,保證寫一次代碼在所有iOS設備上高效運行策肝。CoreBluetooth框架利用藍牙和外設交互肛捍,包括掃描連接藍牙設備隐绵,保存連接狀態(tài),斷開連接拙毫,獲取外設的數(shù)據(jù)或者給外設傳輸數(shù)據(jù)等等依许。Security框架提供管理證書,公鑰和私鑰信任策略缀蹄,keychain,hash認證數(shù)字簽名等等與安全相關的解決方案峭跳。
下面看其中幾個比較重要的框架:
Accelerate.framework
:包含加速數(shù)學和DSP函數(shù)。ExternalAccessory.framework
:包含與外設進行通訊的接口缺前。Security.framework
:包含管理證書蛀醉、公鑰私鑰以及信任策略的接口。
看一下下面示意圖衅码。
參考文章
1. iOS系統(tǒng)架構(gòu)和常用框架
2. iOS系統(tǒng)架構(gòu)
后記
本篇主要講述了iOS系統(tǒng)的架構(gòu)拯刁,感興趣的給個贊或者關注,謝謝~~~