iOS系統是基於unix的,可是加入了本身的東西成了一個獨立的系統,是Darwin爲基礎的。Darwin自己就是一個完整的UNIX/BSD系統,具備UNIX體系慣有的高度可靠性和健壯性。Darwin項目的創始公司是蘋果公司,但Darwin徹底是基於開源項目FreeBSD 5.0和Mach 3.0構建。html
iOS系統架構以下圖所示:數據庫
可分爲四級結構,由上至下分別爲觸摸層(Cocoa Touch Layer)、媒體層(Media Layer)、核心服務層(Core Services Layer)、核心系統層(Core OS Layer),每一個層級提供不一樣的服務。低層級結構提供基礎服務如文件系統、內存管理、I/O操做等。高層級結構創建在低層級結構之上提供具體服務如UI控件、文件訪問。xcode
各層包含的框架以下圖所示:安全
·觸摸層(Cocoa Touch):爲應用程序的開發提供了經常使用的框架,其中大部分框架都與界面有關,本質上,它負責用戶在iOS設備上的觸摸操做。還包括一些經常使用框架,好比NotificationCenter本地通知和遠程推送、iAd廣告框架、GameKit、UIKit、MapKit等;網絡
·媒體層(Media):提供圖形、音頻和視頻技術支持,如圖像相關的CoreGraphics、CoreAnimation、CoreImage、GLKit、OpenGL ES、CoreText、ImageIO等,音頻相關的CoreAudio、OpenAL、AVFoundation等框架,視頻相關的CoreMedia、Media Player框架,已經音視頻傳輸的AirPlay框架等;架構
·核心服務層(Core Services):提供應用程序所須要的基礎系統服務,如Foundation、Accounts帳戶框架、CFNetwork網絡框架、Ad Support廣告框架、Core Foundation、CoreData、CoreLocation、CoreMotion、CoreTelephony、SystemConfiguration等,其中,最核心的就是CoreFoundation和Foundation框架,定義了全部應用使用的數據類型。框架
·核心操做系統層(Core OS):包含大多數底層接近硬件的功能,所包含的框架經常被其它框架所使用,Accelerate框架包含數字信號、線性代數、圖像處理的接口,針對全部的iOS設備硬件之間的差別作優化,保證寫一次代碼在說有的iOS設備上都能告訴運行,CoreBluetooth框架利用藍牙和外設交互,包括掃描鏈接藍牙設備、保存鏈接狀態、斷開鏈接、獲取外設的數據或者給外設傳輸數據等動能,Security框架提供管理證書、公鑰和私鑰信任策略、keychain、hash認證數字簽名等與安全相關的解決方案。ide
經常使用框架說明函數
Accelerate.framework : 包含加速數學和DSP函數工具
AddressBook.framework : 包含直接訪問用戶聯繫人數據庫的函數
AddressBookUI.framework : 包含顯示系統定義的聯繫人挑選界面和編輯界面的類
AssetsLibrary.framework : 包含顯示用戶照片和視頻的類
AudioToolbox.framework : 包含處理音頻流數據以及播放或錄製音頻的接口
AVFoundation.framework : 包含播放或錄製音頻的Objective-C接口
AudioUnit.framework : 包含加載並使用音頻單元的接口
CFNetwork.framework : 包含經過WiFi或者蜂窩無線訪問網絡的接口
CoreAudio.framework : 包含Core Audio框架使用的各類數據類型
CoreData.framework : 包含管理應用程序數據模型的接口
CoreFoundation.framework : 提供一些基本軟件服務,包括常見數據類型抽象、字符串實用工具、羣體類型實用工具、資源管理以及偏好設置
CoreGraphics.framework : 包含Quartz 2D接口
CoreLocation.framework : 包含肯定用戶方位信息的接口
CoreMedia.framework : 包含操做音頻和視頻的底層例程
CoreMotion.framework : 包含訪問加速度計以及陀螺儀的數據的接口
CoreTelephony.framework : 包含訪問電話相關的信息的例程
CoreText.framework : 包含一個文本的佈局渲染引擎
CoreVideo.framework : 包含操做音頻和視頻的底層例程
EventKit.framework : 包含訪問用戶日曆事件數據的接口
EventKitUI.framework : 包含顯示標準系統日曆界面的類
ExternalAccessory.framework : 包含與外設進行通信的接口
Foundation.framework : 包含Cocoa Foundation層的類和方法
GameKit.framework : 包含點對點鏈接管理接口
iAd.framework : 包含在應用程序中顯示廣告的類
ImageIO.framework : 包含讀取或寫入圖像數據的類
IOKit.framework : 包含設備所使用的接口
MapKit.framework :
包含將地圖界面嵌入到應用程序的類,也能夠用於查找地理編碼反向座標
MediaPlayer.framework : 包含顯示全屏視頻的接口
MessageUI.framework : 包含撰寫和排隊發送電子郵件信息的界面
MobileCoreServices.framework : 定義系統支持的統一類型標識符(UTIs)
OpenAL.framework : 包含OpenAL接口。OpenAL是一個跨平臺的方位音頻庫
OpenGLES.framework : 包含OpenGL ES接口。OpenGL ES框架是OpenGL跨平臺2D和3D渲染庫的跨平臺版本
QuartzCore.framework : 包含Core Animation接口
QuickLook.framework : 包含預覽文件接口
Security.framework : 包含管理證書、公鑰私鑰以及信任策略的接口
StoreKit.framework : 包含用於處理與應用程序內購買相關的財務交易
SystemConfiguration.framework : 包含用於處理設備網絡配置的接口
UIKit.framework : 包含iOS應用程序用戶界面層使用的類和方法