架構(gòu)之路 (一) —— iOS原生系統(tǒng)架構(gòu)(一)

版本記錄

版本號 時間
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灵妨、CoreImageGLKit落竹、OpenGL ES泌霍、CoreTextImageIO等等述召。聲音技術相關的CoreAudio朱转、OpenALAVFoundation积暖,視頻相關的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)絡連接框架简十,地理位置框架檬某,運動框架等等。這些服務中的最核心的是CoreFoundationFoundation框架螟蝙,定義了所有應用使用的數(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)拯刁,感興趣的給個贊或者關注,謝謝~~~

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肆良,一起剝皮案震驚了整個濱河市筛璧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惹恃,老刑警劉巖夭谤,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異巫糙,居然都是意外死亡朗儒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門参淹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來醉锄,“玉大人,你說我怎么就攤上這事浙值】也唬” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵开呐,是天一觀的道長烟勋。 經(jīng)常有香客問我,道長筐付,這世上最難降的妖魔是什么卵惦? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮瓦戚,結(jié)果婚禮上沮尿,老公的妹妹穿的比我還像新娘。我一直安慰自己较解,他們只是感情好畜疾,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布赴邻。 她就那樣靜靜地躺著,像睡著了一般庸疾。 火紅的嫁衣襯著肌膚如雪乍楚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天届慈,我揣著相機與錄音徒溪,去河邊找鬼。 笑死金顿,一個胖子當著我的面吹牛臊泌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播揍拆,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼渠概,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嫂拴?” 一聲冷哼從身側(cè)響起播揪,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎筒狠,沒想到半個月后猪狈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡辩恼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年雇庙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灶伊。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡疆前,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出聘萨,到底是詐尸還是另有隱情竹椒,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布米辐,位于F島的核電站碾牌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏儡循。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一征冷、第九天 我趴在偏房一處隱蔽的房頂上張望择膝。 院中可真熱鬧,春花似錦检激、人聲如沸肴捉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽齿穗。三九已至傲隶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窃页,已是汗流浹背跺株。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脖卖,地道東北人乒省。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像畦木,于是被迫代替她去往敵國和親袖扛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 一)iOS的系統(tǒng)架構(gòu) iOS基于UNIX系統(tǒng)十籍,iOS的系統(tǒng)架構(gòu)分為四層蛆封,由上到下一次為:可觸摸層(Cocoa To...
    木杉9211閱讀 4,956評論 0 2
  • iOS的系統(tǒng)架構(gòu)分為四個層次:核心操作系統(tǒng)層(Core OS layer)、核心服務層(Core Services...
    zhaihongxia閱讀 2,838評論 0 3
  • 6轉(zhuǎn)載-->>IOS框架和服務 在iOS中框架是一個目錄勾栗,包含了共享資源庫惨篱,用于訪問該資源庫中儲存的代碼的頭文件,...
    李小六_閱讀 3,620評論 2 24
  • 在iOS中框架是一個目錄械姻,包含了共享資源庫妒蛇,用于訪問該資源庫中儲存的代碼的頭文件,以及圖像楷拳、聲音文件等其他資源绣夺。共...
    ch123閱讀 1,780評論 0 1
  • 忙碌了一天 靜靜的坐下一會 知道親子日記沒完成呢 孩子放假好幾天了 我的時間才有那么一會 陪陪他 叫了我12年的媽...
    思念永恒2018閱讀 363評論 0 0