1.框架概述
iOS的系統架構分爲四個層次:核心操做系統層(Core OS layer)、核心服務層(Core Services layer)、媒體層(Media layer)和可觸摸層(Cocoa Touch layer)。下面是IOS系統結構圖。服務器
![](http://static.javashuo.com/static/loading.gif)
- Core OS是位於iOS系統架構最下面的一層是核心操做系統層,它包括內存管理、文件系統、電源管理以及一些其餘的操做系統任務。它能夠直接和硬件設備進行交互。做爲app開發者不須要與這一層打交道。
- Core Services是核心服務層,能夠經過它來訪問iOS的一些服務。
- Media是媒體層,經過它咱們能夠在應用程序中使用各類媒體文件,進行音頻與視頻的錄製,圖形的繪製,以及製做基礎的動畫效果。
- Cocoa Touch是可觸摸層,這一層爲咱們的應用程序開發提供了各類有用的框架,而且大部分與用戶界面有關,本質上來講它負責用戶在iOS設備上的觸摸交互操做。
2.CocoaTouch層
CocoaTouch提供了基本的系統行爲支持,並且將你的工做量降到最低,當你想要實現更爲複雜的行爲和界面時,才考慮向下層探尋技術支持。多線程
- UIKit框架:UIKit提供了一些程序運行所必須的關鍵對象,使得App可以捕獲用戶輸入和屏幕上顯示內容。
UIKit框架類組織架構圖:架構
![](http://static.javashuo.com/static/loading.gif)
在圖中能夠看出,responder 類是圖中最大分支的根類,UIResponder爲處理響應事件和響應鏈 定義了界面和默認行爲。當用戶用手指滾動列表或者在虛擬鍵盤上輸入時,UIKit就生成時間傳送給UIResponder響應鏈,直到鏈中有對象處理這個事件。相應的核心對象,好比:UIApplication ,UIWindow,UIView都直接或間接的從UIResponder繼承。app
- MapKit框架:iOS3.0引入該框架,該框架提供一個可被嵌入到應用程序的地圖界面,該界面包含一個能夠滾動的地圖視圖。
- Address Book UI框架:iOS3.0引入該框架,能夠利用該框架撰寫電子郵件,並將其放到用戶的發件箱隊列等候發送
- Message UI框架:顯示建立或者編輯聯繫人的標準系統界面
3.Media層
包含圖形、音頻、視頻等技術框架
Quartz Core框架:包含Core Animation接口。Core Animation是高級動畫製做和混合技術,它使用通過優化的渲染路徑實現複雜的動畫和視覺效果。優化
Media Player框架:應用程序播放視頻和音頻內容。動畫
AV Foundation框架:該框架包含的Objective-C類可用於播放音頻內容。spa
Core Graphics框架:包含Quartz 2D繪圖API接口。操作系統
4.Core Service層
Foundation類組織架構圖注:圖中灰色的是iOS不支持的.net
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
將上圖Foundation框架中的類進行邏輯分類以下:
- 值對象
- 集合
- 操做系統服務 包括下面三個:文件系統和URL 進程間通信。 這個範疇中的大部分類表明不一樣的系統端口、套接字、和名字服務器,對實現底層的IPC頗有用。NSPipe表明一個BSD管道,即一種進程間的單向通信通道。 線程和子任務。 NSThread類使您能夠建立多線程的程序,而各類鎖(lock)類則爲彼此競爭的線程在訪問進程資源時提供各類控制機制。經過NSTask,您的程序能夠分出 一個子進程來執行其它工做或進行進度監控。
- 通知
- 歸檔和序列化
- 表達式和條件判斷
- Objective-C語言服務
參考:
http://blog.csdn.net/yuhuangc/article/details/7575519
http://blog.csdn.net/totogo2010/article/details/8081253