iOS框架介紹
Cocoa Touch
GameKit
實現對遊戲中心的支持,讓用戶可以在線共享他們的遊戲相關的信息
iAd 用來在應用中提供廣告條
MapKit 地圖工具
MessageUI 在應用中提供編輯郵件和sms消息的支持
撰寫電子郵件,並將其放入到用戶的發件箱排隊等候發送
該框架提供一個SMS撰寫面板控制器。您能夠經過它在應用程序中直接建立並編輯SMS信息(無需離開應用程序)
UIKit 提供實現圖形和事件驅動的應用的相當重要的基礎。
功能包括:
基本的應用管理和基礎設施,包括應用的主循環;
用戶接口管理,包括對storyboards和nib文件的支持;
一個用來封裝用戶UI內容的視圖控制器模式;
標準系統視圖和控制對象;
提供處理觸摸和運動事件的支持;
多任務支持;
定製標準UIKit控制的外觀;
支持文本和web內容;
剪切、複製、粘貼的支持;
支持動畫UI;
經過url語義和框架接口與系統提供的其它應用集成的能力;
對有障礙用戶的可存取性的支持;
pdf 建立;
支持定製像系統鍵盤行爲同樣的用戶輸入視圖;
支持建立與系統鍵盤交互的定製的文本視圖;
支持經過email,Twitter, Facebook和其它服務共享內容。
也支持一些設備特定功能的集成,例如
一、內建的攝像機; 二、用戶的圖片庫; 三、設備名和模式信息; 四、電池狀態信息; 五、接近傳感器信息; 六、來自附件耳機的遠程控制信息
Media Layer
CoreImage 提供非破壞的方式(原先的圖像不被改變)操做視頻和靜態圖像
提供一組強大的內建過濾器,在觸摸彈起、糾正圖片以及面部和特徵檢測等許多方面使用(coreImage只是對圖像進行處理,不是視圖繪製和渲染,區別CG,GL等)
ImageIO 提供輸入和輸出圖像數據和圖像元數據的接口。
該框架利用CoreGraphics數據類型和功能,並支持在ios 上全部的可得到的標準的圖像類型。你能使用這個框架存取Exif和IPTC元數據屬性。
AssetsLibrary 用戶資源庫,存取用戶的圖片、視頻和媒體。
提供一個查詢界面,查找用戶照片和數據。能夠訪問用戶保存的相冊以及導入到設備中的圖片或視頻,也能夠將照片或者視頻保存到用戶的相冊。
PhotoKit 專門針對相片相冊,比AssetsLibrary 更靈活也更高效
GLKit 提供OpenGL ES框架面向對象的接口,OpenGL是嵌入式設備中對軟件進行圖形加速,高質量壓縮等處理的跨平臺開源框架
CoreGraphics 核心繪圖,包含Quartz 2D繪圖API接口
Quartz 是Mac OS X系統使用的向量繪圖引擎,它支持基於路徑繪圖、抗鋸齒渲染、漸變、圖片、顏色、座標空間轉換、PDF文件的建立、顯示和解析。
雖然API基於C語言,可是它使用基於對象的抽象以表示基本繪圖對象,這樣可讓開發者能夠更方便地保存並複用圖像內容
QuartzCore 包含Core Animation接口,主要用於動畫
Core Animation是 高級動畫製做和混合技術,它使用通過優化的渲染路徑實現複雜的動畫和視覺效果。
它提供的高級Objective-C接口可對動畫效果進行配置,而後在設備 硬件中進行渲染,以此來提升程序的性能。
Core Animation框架被整合到iOS的許多部分(包括UIKit框架中的許多類(如
UIView
)),能夠爲多種系統行爲提供動畫效果。
SpriteKit 爲2d和2.5d遊戲提供硬件加速的動畫系統
SpriteKit提供大多數遊戲須要的基礎,包括一個圖形引擎和動畫系統,聲音播放支持,一個物理仿真引擎。
在Sprite Kit應用中內容組織爲場景。一個場景包括紋理對象,視頻,路徑圖形,核心圖像過濾器和其它的特效。SpriteKit利用這些對象,肯定這些對象到屏幕 上的最有效的方式。當在場景中到了動畫內容的時刻,你能使用SpriteKit來顯式規定你想執行的行動或使用物理仿真引擎來爲那些對象定義物理行爲(例 如重力、引力或排拆力)。
除了SpriteKit框架,也有其它Xcode工具來建立顆粒發射效果和紋理圖。你能使用Xcode工具來管理應用資源和快速地更新Sprite Kit場景。
OpenAL 用來在應用中提供位置音效(立體感)的跨平臺的標準。
多針對遊戲,用於多通道三維位置音效的特效表現,可以使用該接口在遊戲和其它須要位置音效輸出的程序中實現高性能、高質量的聲音。
GameController 遊戲控制器
發現和配置針對iPhone/iPod/iPad設備的遊戲控制器。
遊戲控制器能夠是物理鏈接到iOS設備或者是經過藍牙無線鏈接。
MediaPlayer 爲應用程序播放視頻和音頻內容提供支持
添加對itunes庫支持,播放音樂曲目、播放列表、搜索歌曲並向用戶顯示媒體選取界面
爲用戶提供可選的播放控制,新增數個界面用於支持配置和管理電影播放
AVFoundation 爲管理聲音以及視頻播放和記錄提供高級支持,
功能包括媒體資源管理,媒體編輯,電影捕捉,電影播放,曲目管理,,媒體項的元數據管理,立體聲淘選,不一樣聲音的精確同步,判斷聲音文件詳細信息等
MP對比AV:高度封裝,沒法自定義播放器,AVFoundation能夠,更靈活更底層;MP不提供錄像功能
AV/MP對比第三方框架:支持格式較少
MediaAccessibility
管理媒體文件中字幕的設置
管理媒體文件中字幕(closed-caption)內容的顯示。經過該Framework與settings的結合,可讓用戶開啓字幕的顯示並設置字幕樣式。
CoreAudio 框架提供C語言接口,可用於操做立體聲音頻
可經過該框架訪問設備的震動功能(支持震動功能的設備)。
CoreVideo 爲Core Media框架提供緩衝和緩衝池支持。
多數應用從不直接使用該框架。
CoreText 提供一個對文本進行佈局和字體處理的簡單的、高性能的C-based接口
提供一個完整的文本佈局引擎,能夠經過它管理文本在屏幕上的擺放。所管理的文本也可使用不一樣的字體和渲染屬性。
用在不使用TextKit但仍想得到在字處理應用中先進文本處理能力的場景,NSAttributedString的前身
StoreKit 提供iOS內購接口
Core Services
NewsstandKit
爲用戶提供了一個閱讀雜誌和報紙的中心位置
想經過Newsstand提供雜誌和報紙內容的出版商可以使用該框架建立它們本身的iOS應用,讓用戶啓動新雜誌和報紙新聞的後臺下載。
AddressBook
在系統通信錄中建立新的聯繫人和編輯和選擇已存在的聯繫人
AdSupport
提供存取應用用於廣告功能的一個標識。
該框架也提供一個指示用戶是否選擇廣告跟蹤的標誌。應用在試圖存取廣告標識前須要度和判斷這個標誌。
Accounts 用戶帳號數據庫—用於iOS原生支持的單點登陸
優勢:無需web形式取token 系統設置帳戶能夠同步暱稱&頭像
缺點:原生僅支持部分平臺 必須使用特定的api進行網絡請求(SLRequest social.framework)
Social 提供一個簡單的接口來存取用戶的社交媒體帳號
該框架取代Twitter框架並增長了其它社交帳號,包括Facebook、Sina微博以及其它
應用能使用該框架提交狀態更新和圖像到用戶帳號。該框架與Accounts框架一塊兒爲用戶提供單點登陸並確保存取的用戶帳號是通過准許的。
MultipeerConnectivity 用於iOS設備之間的鏈接,從iOS7開始引入(取代Gamekit藍牙傳輸模塊),主要用於文件共享(僅限於沙盒的文件)
提供一個完整的文本佈局引擎,能夠經過它管理文本在屏幕上的擺放。所管理的文本也可使用不一樣的字體和渲染屬性。
Foundation Core Foundation框架的許多功能提供Objective-C封裝
提供功能:
羣體數據類型 (數組、集合等);程序包;字符串管理;日期和時間管理;原始數據塊管理;偏好管理;URL及數據流操做;線程和RunLoop;Bonjour;通信端口管理;國際化;正則表達式匹配;緩存支持
CoreData iOS用於數據庫技術的框架
管理模型-視圖-控制器應用程序數據模型的技術,它適用於數據模型已經高度結構化的應用程序
經過此框架不須要經過編程定義數據結構,而是經過Xcode提供的圖形工具構造一份表明數據模型的圖表。
在程序運行的時候,Core Data框架就會建立並管理數據模型的實例,同時還對外提供數據模型訪問接口。
經過Core Data管理應用程序的數據模型,能夠極大程度減小需編寫的代碼數量。除此以外,Core Data還具備下述特徵:
將對象數據存儲在SQLite數據庫以得到性能優化。
管理undo/redo操做。
屬性值校驗支持。
支持對數據變化進行傳播,而且不會改變對象間的關聯。
PassKit 對應用提供系統應用PassBook的接口
Passbook提供了一個存儲定貨單、登機卡、入場券和商業折扣卡的位置,代替物理攜帶這些東西
卡劵由應用自身的web service建立並經過email、Safari或定製的應用提交到用戶的設備。電子入場券自己使用特殊的文件格式,在提交以前被加密簽名,簽名去開發者中心申請,支付時經過二維碼和商戶交互
Safari Services 爲應用提供添加url到safari書籤的接口
QuickLook 預覽沒法直接支持查看的文件內容
對於一些未知的格式,咱們通常能夠經過webview打開,如pdf、doc、docx、xls、xlsx、ppt、txt及一些常見圖片格式
CFNetwork C語言的iOS網絡框架
相對Connection、Session更底層更靈活,ASI的實現基於CFNetwork
EventKit 月曆事件UI框架 爲訪問用戶設備的日曆事件提供接口
CoreLocation iOS定位框架
能夠利用設備具有的硬件,經過附近的GPS、蜂窩基站或者WiFi信號等信息計算用戶方位。
Maps應用程序就是利用此功能在地圖上顯示用戶當前位置。
能夠將此技術結合到應用程序,以此向用戶提供方位信息。例如,應用程序可根據用戶當前位置搜索附近飯店、商店或其餘設施 。
Mobile Core Services 移動核心服務框架
定義在通用類型標識符(
UTIs)中使用的低級別類型。
Core Telephony 提供與蜂窩通訊(移動流量)相關的信息交互的接口
使用該框架來得到用戶的蜂窩服務提供者的信息。
對蜂窩call事件(網絡電話)感興趣的應用例如VoIP應用也能在那些事件出現時被通知。
Core Motion 提供一組接口來存取設備上可得到的運動數據
該框架支持使用一組新的block-based接口來存取原始和加工過的加速度計數據。對於帶有陀螺儀的設備,你也能得到原始的陀螺儀數據和加工過的反應設備方向和旋轉速度的數據。
你能在遊戲或其它使用運動做爲輸入或做爲加強用戶體驗的方式的應用中使用加速度計和陀螺儀兩種數據。對於帶有計步硬件的設備,你能存取它的數據來跟蹤健康相關的運動。
Healthkit 爲應用提供健康和健身數據的接口
HealthKit管理從不一樣來源得到的數據,並根據用戶的偏好設置,自動將不一樣來源的全部數據合併起來。
JavaScriptCore 爲許多標準的JavaScript對象提供Objective-C語言的封裝
使用該框架來執行JavaScript代碼和分析JSON數據
其實只是基於
webkit中以C/C++實現的JavaScriptCore的一個包裝,在iOS7蘋果引入該框架以前,不少開發者也會自行將webkit的庫引入項目編譯使用
CoreFoundation 爲ios應用提供基本的數據管理和服務功能的C-based接口
功能包括:集合數據類型(數組、集合等等);應用打包Bundles;字符串管理;日期和時間管理原始數據塊管理Preferences管理;URL和流操做;線程,端口和socket通信等
Foundation框架與CoreFoundation框架緊密相關,爲相同的基本功能提供Objective-C接口。
當你須要混合使用Foundation對象和Core Foundation類型時,你能利用兩個框架之間存在的「toll-freebridging」。toll-free bridging」意味着你能可交換地在兩個框架的方法和功能中使用一些CoreFoundation和Foundation類型。這個支持對許多數據類型可用,包括集合和字符串數據類型。
每一個框架的類和類型描述聲明一個對象是不是toll-freebridged以及在是的狀況下來標識它鏈接到什麼對象。
SystemConfiguration 可用於肯定設備的網絡配置的接口
你能用它來肯定設備的網絡配置,也能使用該框架肯定一個Wi-Fi或蜂窩鏈接是否在用以及一個特定的主機服務器是否可以存取
Core Media 核心媒體框架
提供由AV Foundation框架使用的底層媒體類型。
大多數應用從不須要使用該框架,但少數須要更精確控制音視頻內容建立和呈現的開發者可使用它。
Core OS
Accelerate 加速向量計算
加速框架,其中含有C的API用於向量和矩陣運算,大數字以及DSP(數字信號處理)運算和圖像處理
兩個核心庫vecLib(vector 向量)和vImage(圖像處理)
vImage應用:
vimage卷積算法 vImageBoxConvolve_ARGB8888 最靠譜
coreImage濾鏡 CPU渲染,效率低耗時長
UIBlurEffect iOS8新特性
ExternalAccessory 用於第三方藍牙設備交互,可是藍牙設備必須通過蘋果MFi認證(國內較少)
CoreBluetooth ( 時下熱門)可用於第三方藍牙設備交互
必需要支持藍牙4.0 硬件至少是4s,系統至少是iOS6 藍牙4.0以低功耗著稱,通常也叫BLE(Bluetooth Low Energy)目前應用比較多的案例:運動手壞、嵌入式設備、智能家居
Security 安全框架
除了內建的安全功能,i
OS也提供了一個明確的安全框架(Security.framework),你能用它來保證應用管理的數據的安全。
該框架提供管理證書、公有和私有key和信任策略的接口。支持產生加密安全僞隨機碼。它也支持在keychain(保存敏感用戶數據的安全倉庫)中保存證書和加密key。
公共加密庫提供對稱加密、hash認證編碼(HMACs)、數字簽名等額外支持,數字簽名功能本質上與iOS上沒有的OpenSSL庫兼容。
在你建立的多個應用之間共享keychain是可能的。共享使它容易在相同的一套應用之間更平滑的協做。例如,你能使用該功能來共享用戶口令或其它元素,不然可能使每一個應用都須要提示用戶。
爲了在應用之間共享數據,必須爲每一個應用的Xcode工程配置適當的權限。
Generic Security Services 通用安全服務框架
GenericSecurity Services 框架 (GSS.framework)給ios應用提供一組標準安全相關的服務。該框架的基本接口規定在IETF
RFC2743 andRFC4401。
除了提供標準的接口,IOS還包括一些沒有在標準中規定但被許多應用須要的一些管理證書須要的額外東西。
System 系統框架
系統層包括內核環境、驅動及操做系統底層UNIX 接口。內核以Mach爲基礎,它負責操做系統的各個方面,包括管理系統的虛擬內存、線程、文件系統、網絡以及進程間通信。這一層包含的驅動是系統硬件和系 統框架的接口。出於安全方面的考慮,內核和驅動只容許少數系統框架和應用程序訪問。
應用程序可使用iOS提供的
LibSystem
庫訪問多種操做系統底層功能。
LibSystem
庫的接口基於C語言,可爲下述功能提供支持: 線程 (POSIX GCD),網絡 (BSD sockets),文件系統訪問,標準 I/O,Bonjour和 DNS服務,區域信息,內存分配,數學計算