整理自互聯網,感謝原文做者!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:可觸摸層主要提供用戶交互相關的服務如界面控件、事件管理、通知中心、地圖,包含網絡
)架構
(2)媒體層:經過它咱們能夠在應用程序中使用各類媒體文件,進行音頻與視頻的錄製,圖形的繪製,以及製做基礎的動畫效果。它包括如下這些組件:框架
Core Audio OpenGL Audio Mixing Audio Recording Video Playback JPG,PNG,TIFF PDF Quartz Core Animation OpenGL ES
(補充new:媒體層主要提供圖像引擎、音頻引擎、視頻引擎框架。socket
)ide
(3)核心服務層:咱們能夠經過它來訪問iOS的一些服務。它包括如下這些組件:post
Collections Address Book Networking File Access SQLite Core Location Net Services Threading Preferences URL Utilities
(補充new:核心服務層爲程序提供基礎的系統服務例如網絡訪問、瀏覽器引擎、定位、文件訪問、數據庫訪問等,主要包含如下框架:
)
(4)核心操做系統層包括:內存管理、文件系統、電源管理以及一些其餘的操做系統任務。它能夠直接和硬件設備進行交互。核心操做系統層包括如下這些組件:
OS X Kernel Mach 3.0 BSD Sockets Power Mgmt File System Keychain Certificates Security Bonjour
(補充new:核心系統層提供爲上層結構提供最基礎的服務如操做系統內核服務、本地認證、安全、加速等。
)
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 |
建立和管理應用程序的用戶界面 |