iOS 系統架構 && 經常使用 framework

整理自互聯網,感謝原文做者!html

1.iOS基於UNIX系統,所以從系統的穩定性上來講它要比其餘操做系統的產品好不少數據庫

 

2.iOS的系統架構分爲四層,由上到下一次爲:可觸摸層(Cocoa Touch layer)、媒體層(Media layer)、核心服務層(Core Services layer)、核心操做系統層(Core OS layer)如圖:瀏覽器

(1)觸摸層:爲應用程序開發提供了各類經常使用的框架而且大部分框架與界面有關,本質上來講它負責用戶在iOS設備上的觸摸交互操做。它包括如下這些組件:安全

Multi-Touch Events  Core Motion   Camera

View Hierarchy   Localization   Alerts

Web Views     Image Picker   Multi-Touch Controls

(補充new:可觸摸層主要提供用戶交互相關的服務如界面控件、事件管理、通知中心、地圖,包含網絡

  • UIKit(界面相關)
  • EventKit(日曆事件提醒等)
  • Notification Center(通知中心)
  • MapKit(地圖顯示)
  • Address Book(聯繫人)
  • iAd(廣告)
  • Message UI(郵件與SMS顯示)
  • PushKit(iOS8新push機制)

架構

 (2)媒體層:經過它咱們能夠在應用程序中使用各類媒體文件,進行音頻與視頻的錄製,圖形的繪製,以及製做基礎的動畫效果。它包括如下這些組件:框架

Core Audio     OpenGL    Audio Mixing

Audio Recording   Video Playback   JPG,PNG,TIFF

PDF     Quartz    Core Animation 

OpenGL ES

(補充new:媒體層主要提供圖像引擎、音頻引擎、視頻引擎框架。socket

  • 圖像引擎(Core Graphics、Core Image、Core Animation、OpenGL ES)
  • 音頻引擎 (Core Audio、 AV Foundation、OpenAL)
  • 視頻引擎(AV Foundation、Core Media)

ide

(3)核心服務層:咱們能夠經過它來訪問iOS的一些服務。它包括如下這些組件:post

Collections     Address Book   Networking

File Access     SQLite    Core Location

Net Services    Threading    Preferences

URL Utilities

(補充new:核心服務層爲程序提供基礎的系統服務例如網絡訪問、瀏覽器引擎、定位、文件訪問、數據庫訪問等,主要包含如下框架:

  • CFNetwork(網絡訪問)
  • Core Data(數據存儲)
  • Core Location(定位功能)
  • Core Motion(重力加速度,陀螺儀)
  • Foundation(基礎功能如NSString)
  • Webkit(瀏覽器引擎)
  • JavaScript(JavaScript引擎)

 

(4)核心操做系統層包括:內存管理、文件系統、電源管理以及一些其餘的操做系統任務。它能夠直接和硬件設備進行交互。核心操做系統層包括如下這些組件:

OS X Kernel    Mach 3.0    BSD

Sockets     Power Mgmt  File System

Keychain     Certificates   Security

Bonjour

(補充new:核心系統層提供爲上層結構提供最基礎的服務如操做系統內核服務、本地認證、安全、加速等。

  • 操做系統內核服務(BSD sockets、I/O訪問、內存申請、文件系統、數學計算等)
  • 本地認證(指紋識別驗證等)
  • 安全(提供管理證書、公鑰、密鑰等的接口)
  • 加速 (執行數學、大數字以及DSP運算,這些接口iOS設備硬件相匹配)

3.Cocoa Touch簡介

(1)在最上層Cocoa Touch層中的不少技術都是基於Objective-C語言的。Objective-C語言爲iOS提供了集合、文件管理、網絡操做等支持。好比UIKit框架,它爲應用程序提供了各類可視化組件,好比像窗口(Window)、視圖(View)和按鈕組件(UIButton)。Cocoa Touch層中的其餘框架,對咱們在應用程序中的開發來講也是很是有用的,如訪問用戶通訊錄功能框架、獲取照片信息功能的框架、負責加速感應器和三維陀螺儀等硬件支持的框架。

4.Framework--應用程序框架

什麼是框架?本質上來講它是幫助咱們完成各類特定功能的軟件庫。

咱們編寫的應用程序項目,都是從Cocoa Touch層開始的,具體來講就是從UIKit Framework開始的。當在編寫程序的過程當中須要用到一些特殊功能的時候,咱們應該從框架的最頂端技術開始尋找相應的框架,只有在上層結構沒法解決時,才能使用其下層的技術。其實,頂層的框架已經涵蓋了咱們絕大多數須要的功能。

下列表格列出了一些經常使用的iOS SDK框架。

                  

 經常使用的iOS SDK框架:

框架名稱

    能

AddressBook.framework

提供訪問存儲核心數據庫中用戶聯繫人信息的功能

AddressBookUI.framework

提供一個用戶界面,用於顯示存儲在地址簿中的聯繫人信息

AudioToolbox.framework

提供音頻錄製和回放的底層API,同時也負責管理音頻硬件

AudioUnit.framework

提供一個接口,讓咱們的應用程序能夠對音頻進行處理

AVFoundation.framework

提供音頻錄製和回放的底層API,同時也負責管理音頻硬件

CFNetwork.framework

訪問和配置網絡,像HTTP、FTP和Bonjour Services

CoreFoundation.framework

提供抽象的經常使用數據類型,如 Unicode strings、XML、URL等

CoreGraphics.framework

提供2D繪製的基於C的API

 

 

                 續表:

框架名稱

    能

CoreLocation.framework

使用GPS和Wi-Fi獲取位置信息

Foundation.framework

提供Object-C的基礎類(像NSObject)、

基本數據類型和操做系統服務等

GameKit.framework

爲遊戲提供網絡功能;點對點互聯和遊戲中的語音交流

MapKit.framework

爲應用程序提供內嵌地圖的接口

MediaPlayer.framework

提供播放視頻和音頻的功能

MessageUI.framework

提供視圖控制接口用以處理E-mail和短信

OpenGLES.framework

提供簡潔而高效的繪製2D和3D圖形的OpenGL API子集

QuartzCore.framework

提供動畫特效以及經過硬件進行渲染的能力

StoreKit.framework

爲應用程序提供在程序運行中消費的支持

SystemConfiguration.framework

檢測當前網絡是否可用和硬件設備狀態的能力

UIKit.framework

建立和管理應用程序的用戶界面

 
 
參考資料:
相關文章
相關標籤/搜索