iOS框架介紹

iOS框架介紹     

(顏色表示常用程度)
Cocoa Touch

GameKit  實現對遊戲中心的支持,讓用戶能夠在線共享他們的遊戲相關的信息 
iOS設備之間藍牙數據傳輸   從iOS7開始過期   局域網遊戲  http://www.cnblogs.com/KidReborn/archive/2011/10/17/2215641.html

iAd     用來在應用中提供廣告條
廣告條與用戶UI視圖進行合併,與蘋果的iAd服務一起工作,自動處理、加載和呈現富媒體廣告以及應答在那些廣告條上的點擊等所有相關的工作。http://www.cocoachina.com/appstore/20100628/1762.html
                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
MapKit     地圖工具
定製地圖的內容和外觀,大頭針註解,線路    http://www.cnblogs.com/kenshincui/p/4125570.html

MessageUI    在應用中提供編輯郵件和sms消息的支持
撰寫電子郵件,並將其放入到用戶的發件箱排隊等候發送
該框架提供一個SMS撰寫面板控制器。您可以通過它在應用程序中直接創建並編輯SMS信息(無需離開應用程序)

UIKit   提供實現圖形和事件驅動的應用的至關重要的基礎。
功能包括:
基本的應用管理和基礎設施,包括應用的主循環;
用戶接口管理,包括對storyboards和nib文件的支持;
一個用來封裝用戶UI內容的視圖控制器模式; 
標準系統視圖和控制對象;
提供處理觸摸和運動事件的支持;
圖形和窗口支持,包括支持外部顯示器;View Programming Guide for iOS
多任務支持;
定製標準UIKit控制的外觀;
支持文本和web內容;
剪切、複製、粘貼的支持;
支持動畫UI;
通過url語義和框架接口與系統提供的其它應用集成的能力;
對有障礙用戶的可存取性的支持;
支持ApplePush Notification服務;  Local and Remote Notification Programming Guide
本地通知調度和提交;     Local and Remote Notification Programming Guide
pdf 創建;
支持定製像系統鍵盤行爲一樣的用戶輸入視圖;
支持創建與系統鍵盤交互的定製的文本視圖;
支持通過email,Twitter, Facebook和其它服務共享內容。
也支持一些設備特定功能的集成,例如
1、內建的攝像機; 2、用戶的圖片庫; 3、設備名和模式信息; 4、電池狀態信息; 5、接近傳感器信息; 6、來自附件耳機的遠程控制信息

Media Layer

CoreImage  提供非破壞的方式(原先的圖像不被改變)操作視頻和靜態圖像
提供一組強大的內建過濾器,在觸摸彈起、糾正圖片以及面部和特徵檢測等許多方面使用(coreImage只是對圖像進行處理,不是視圖繪製和渲染,區別CG,GL等)

ImageIO  提供輸入和輸出圖像數據和圖像元數據的接口。
該框架利用CoreGraphics數據類型和功能,並支持在ios 上所有的可獲得的標準的圖像類型。你能使用這個框架存取Exif和IPTC元數據屬性。
圖片漸進式顯示(SD對應功能原理)   http://blog.csdn.net/dyllove98/article/details/9707681   核心CGImageSource類屬於ImageIO,和CG配合使用

AssetsLibrary    用戶資源庫,存取用戶的圖片、視頻和媒體。
提供一個查詢界面,查找用戶照片和數據。可以訪問用戶保存的相冊以及導入到設備中的圖片或視頻,也可以將照片或者視頻保存到用戶的相冊。

PhotoKit 專門針對相片相冊,比AssetsLibrary 更靈活也更高效

GLKit    提供OpenGL ES框架面向對象的接口,OpenGL是嵌入式設備中對軟件進行圖形加速,高質量壓縮等處理的跨平臺開源框架
該框架常用於遊戲開發 http://blog.sina.com.cn/s/blog_3e50cef401019cxq.html  

CoreGraphics     核心繪圖,包含Quartz 2D繪圖API接口 
Quartz 是Mac OS X系統使用的向量繪圖引擎,它支持基於路徑繪圖、抗鋸齒渲染、漸變、圖片、顏色、座標空間轉換、PDF文件的創建、顯示和解析。
雖然API基於C語言,但是它使用基於對象的抽象以表示基本繪圖對象,這樣可以讓開發者可以更方便地保存並複用圖像內容 



QuartzCore  包含Core Animation接口,主要用於動畫
Core Animation是 高級動畫製作和混合技術,它使用經過優化的渲染路徑實現複雜的動畫和視覺效果。
它提供的高級Objective-C接口可對動畫效果進行配置,然後在設備 硬件中進行渲染,以此來提高程序的性能。
Core Animation框架被整合到iOS的許多部分(包括UIKit框架中的許多類(如UIView)),可以爲多種系統行爲提供動畫效果。
開發者也可以使用該框架中的Objective-C接口直接創建定製動畫。http://blog.csdn.net/light_jewel/article/details/7819525

SpriteKit     爲2d和2.5d遊戲提供硬件加速的動畫系統  
SpriteKit提供大多數遊戲需要的基礎,包括一個圖形引擎和動畫系統,聲音播放支持,一個物理仿真引擎。
在Sprite Kit應用中內容組織爲場景。一個場景包括紋理對象,視頻,路徑圖形,核心圖像過濾器和其它的特效。SpriteKit利用這些對象,確定這些對象到屏幕 上的最有效的方式。當在場景中到了動畫內容的時刻,你能使用SpriteKit來顯式規定你想執行的行動或使用物理仿真引擎來爲那些對象定義物理行爲(例 如重力、引力或排拆力)。
除了SpriteKit框架,也有其它Xcode工具來創建顆粒發射效果和紋理圖。你能使用Xcode工具來管理應用資源和快速地更新Sprite Kit場景。

OpenAL  用來在應用中提供位置音效(立體感)的跨平臺的標準。
多針對遊戲,用於多通道三維位置音效的特效表現,能夠使用該接口在遊戲和其它需要位置音效輸出的程序中實現高性能、高質量的聲音。
因爲OpenAL是跨平臺的標準,在iOS使用OpenAL編寫的代碼能夠容易地移植到許多其它平臺。  http://blog.csdn.net/zengconggen/article/details/7591233

GameController  遊戲控制器
發現和配置針對iPhone/iPod/iPad設備的遊戲控制器。
遊戲控制器可以是物理連接到iOS設備或者是通過藍牙無線連接。
GameController框架當控制器可獲得時通知你的應用讓應用可以規定哪個控制器輸入與你的應用相關。 http://blog.csdn.net/wanglang3081/article/details/39716959

MediaPlayer     爲應用程序播放視頻和音頻內容提供支持
可使用標準系統界面播放視頻,支持全屏和小窗口視頻播放   http://www.cnblogs.com/kenshincui/p/4186022.html#video
添加對itunes庫支持,播放音樂曲目、播放列表、搜索歌曲並向用戶顯示媒體選取界面
爲用戶提供可選的播放控制,新增數個界面用於支持配置和管理電影播放

AVFoundation  爲管理聲音以及視頻播放和記錄提供高級支持,
功能包括媒體資源管理,媒體編輯,電影捕捉,電影播放,曲目管理,,媒體項的元數據管理,立體聲淘選,不同聲音的精確同步,判斷聲音文件詳細信息等

MP對比AV:高度封裝,無法自定義播放器,AVFoundation可以,更靈活更底層;MP不提供錄像功能
AV/MP對比第三方框架:支持格式較少

視頻監控/視頻直播  HLS協議   http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html  

MediaAccessibility     管理媒體文件中字幕的設置
管理媒體文件中字幕(closed-caption)內容的顯示。通過該Framework與settings的結合,可以讓用戶開啓字幕的顯示並設置字幕樣式。  

CoreAudio    框架提供C語言接口,可用於操作立體聲音頻

可通過該框架訪問設備的震動功能(支持震動功能的設備)。
揚聲器聽筒模式的切換 http://www.tuicool.com/articles/YVnAJb

CoreVideo    爲Core Media框架提供緩衝和緩衝池支持。
多數應用從不直接使用該框架。

CoreText     提供一個對文本進行佈局和字體處理的簡單的、高性能的C-based接口
提供一個完整的文本佈局引擎,可以通過它管理文本在屏幕上的擺放。所管理的文本也可以使用不同的字體和渲染屬性。
用在不使用TextKit但仍想獲得在字處理應用中先進文本處理能力的場景,NSAttributedString的前身

StoreKit     提供iOS內購接口
提供在ios應用中購買內容和服務的支持,也可以爲付費內容部分進行解鎖 http://blog.csdn.net/xiaominghimi/article/details/6937097/


Core Services

NewsstandKit    爲用戶提供了一個閱讀雜誌和報紙的中心位置
想通過Newsstand提供雜誌和報紙內容的出版商能夠使用該框架創建它們自己的iOS應用,讓用戶啓動新雜誌和報紙新聞的後臺下載。
在啓動下載後,系統處理下載操作和當內容可獲得時通知應用。  http://mobile.51cto.com/iphone-423385.htm

AddressBook  在系統通訊錄中創建新的聯繫人和編輯和選擇已存在的聯繫人 

AdSupport 提供存取應用用於廣告功能的一個標識。
該框架也提供一個指示用戶是否選擇廣告跟蹤的標誌。應用在試圖存取廣告標識前需要度和判斷這個標誌。

Accounts       用戶賬號數據庫—用於iOS原生支持的單點登錄
iOS5開始iOS原生支持部分社交平臺單點登錄,若用戶在設置中設置平臺賬號,則App代碼中使用account框架並對應平臺,可直接進行單點登錄操作 http://guandongsheng.iteye.com/blog/1866659  http://blog.csdn.net/ysy441088327/article/details/8275808
優點:無需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數據庫以獲得性能優化。
提供NSFetchedResultsController 類用於管理表視圖的數據。
管理undo/redo操作。
屬性值校驗支持。
支持對數據變化進行傳播,並且不會改變對象間的關聯。
支持對數據進行歸類,過濾,並支持對內存數據進行管理。  http://blog.csdn.net/kesalin/article/details/6739319

PassKit      對應用提供系統應用PassBook的接口
Passbook提供了一個存儲訂貨單、登機卡、入場券和商業折扣卡的位置,代替物理攜帶這些東西
卡劵由應用自身的web service創建並通過email、Safari或定製的應用提交到用戶的設備。電子入場券本身使用特殊的文件格式,在提交之前被加密簽名,簽名去開發者中心申請,支付時通過二維碼和商戶交互
需要應用支持,是iOS官方提供的NFC解決方案,提供如到達商戶位置自動提醒優惠券的功能 http://blog.csdn.net/eqera/article/details/8136880 

Safari Services       爲應用提供添加url到safari書籤的接口

QuickLook      預覽無法直接支持查看的文件內容
對於一些未知的格式,我們一般可以通過webview打開,如pdf、doc、docx、xls、xlsx、ppt、txt及一些常見圖片格式
QuickLook框架可以做到以上webview的功能(OSX上的空格預覽,xcode圖片插件顯示bundle圖片),通過預覽的形式,比webview性能好並且支持適配,跳頁和選擇應用打開等   http://blog.csdn.net/kmyhy/article/details/9216461

CFNetwork      C語言的iOS網絡框架
相對Connection、Session更底層更靈活,ASI的實現基於CFNetwork

EventKit      月曆事件UI框架 爲訪問用戶設備的日曆事件提供接口
可以通過該框架訪問用戶日曆中現有事件,可以增加新事件。日曆事件可包含鬧鈴,而且可以配置鬧鈴激活規則  http://www.swiftmi.com/topic/248.html   http://www.tairan.com/archives/7729/

CoreLocation     iOS定位框架
可以利用設備具備的硬件,通過附近的GPS、蜂窩基站或者WiFi信號等信息計算用戶方位。
Maps應用程序就是利用此功能在地圖上顯示用戶當前位置。
可以將此技術結合到應用程序,以此向用戶提供方位信息。例如,應用程序可根據用戶當前位置搜索附近飯店、商店或其他設施 。

Mobile Core Services      移動核心服務框架
定義在通用類型標識符(UTIs)中使用的低級別類型。
很多API是私有未公開的,如LSApplicationWorkspace 獲取系統的所有安裝app  http://www.kejik.com/article/8004.html

Core Telephony      提供與蜂窩通信(移動流量)相關的信息交互的接口
使用該框架來獲得用戶的蜂窩服務提供者的信息。
對蜂窩call事件(網絡電話)感興趣的應用例如VoIP應用也能在那些事件出現時被通知。
越獄下,可以監聽來電信息     http://blog.csdn.net/likendsl/article/details/8425046

Core Motion       提供一組接口來存取設備上可獲得的運動數據
該框架支持使用一組新的block-based接口來存取原始和加工過的加速度計數據。對於帶有陀螺儀的設備,你也能獲得原始的陀螺儀數據和加工過的反應設備方向和旋轉速度的數據。
你能在遊戲或其它使用運動作爲輸入或作爲增強用戶體驗的方式的應用中使用加速度計和陀螺儀兩種數據。對於帶有計步硬件的設備,你能存取它的數據來跟蹤健康相關的運動。   

Healthkit        爲應用提供健康和健身數據的接口
HealthKit管理從不同來源獲得的數據,並根據用戶的偏好設置,自動將不同來源的所有數據合併起來。
HealthKit也可以直接與健康和健身設備一起工作   http://www.csdn.net/article/2015-01-23/2823686-healthkit-tutorial-with-swift/1

JavaScriptCore     爲許多標準的JavaScript對象提供Objective-C語言的封裝
使用該框架來執行JavaScript代碼和分析JSON數據
其實只是基於webkit中以C/C++實現的JavaScriptCore的一個包裝,在iOS7蘋果引入該框架之前,很多開發者也會自行將webkit的庫引入項目編譯使用 
相比webview的oc&js互調更加靈活,包括數據類型/方法的轉換、監聽js調用異常等     http://www.cnblogs.com/ider/p/introduction-to-ios7-javascriptcore-framework.html
基於JavaScriptCore的OC&JS互調     http://blog.csdn.net/lwjok2007/article/details/47058101

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或蜂窩連接是否在用以及一個特定的主機服務器是否能夠存取
iOS開源的Reachability框架就是基於此框架      http://blog.csdn.net/sanpintian/article/details/7642756     http://www.cnblogs.com/worldtraveler/p/4708092.html    

Core Media        核心媒體框架
提供由AV Foundation框架使用的底層媒體類型。
大多數應用從不需要使用該框架,但少數需要更精確控制音視頻內容創建和呈現的開發者可以使用它。

Core OS

Accelerate   加速向量計算
加速框架,其中含有C的API用於向量和矩陣運算,大數字以及DSP(數字信號處理)運算和圖像處理
兩個核心庫vecLib(vector 向量)和vImage(圖像處理)
vImage應用:
vimage卷積算法    vImageBoxConvolve_ARGB8888  最靠譜
coreImage濾鏡      CPU渲染,效率低耗時長
UIBlurEffect          iOS8新特性
GPUImage            速度和效果都不好,但是cpu佔用更少   http://www.cocoachina.com/industry/20140210/7793.html

ExternalAccessory       用於第三方藍牙設備交互,但是藍牙設備必須經過蘋果MFi認證(國內較少)

CoreBluetooth  (  時下熱門)可用於第三方藍牙設備交互
必須要支持藍牙4.0 硬件至少是4s,系統至少是iOS6 藍牙4.0以低功耗著稱,一般也叫BLE(Bluetooth Low Energy)目前應用比較多的案例:運動手壞、嵌入式設備、智能家居

Security      安全框架
除了內建的安全功能,iOS也提供了一個明確的安全框架(Security.framework),你能用它來保證應用管理的數據的安全。
該框架提供管理證書、公有和私有key和信任策略的接口。支持產生加密安全僞隨機碼。它也支持在keychain(保存敏感用戶數據的安全倉庫)中保存證書和加密key。
公共加密庫提供對稱加密、hash認證編碼(HMACs)、數字簽名等額外支持,數字簽名功能本質上與iOS上沒有的OpenSSL庫兼容。
在你創建的多個應用之間共享keychain是可能的。共享使它容易在相同的一套應用之間更平滑的協作。例如,你能使用該功能來共享用戶口令或其它元素,否則可能使每個應用都需要提示用戶。
爲了在應用之間共享數據,必須爲每個應用的Xcode工程配置適當的權限。

Generic Security Services     通用安全服務框架
GenericSecurity Services 框架 (GSS.framework)給ios應用提供一組標準安全相關的服務。該框架的基本接口規定在IETFRFC2743 andRFC4401
除了提供標準的接口,IOS還包括一些沒有在標準中規定但被許多應用需要的一些管理證書需要的額外東西。

System   系統框架
系統層包括內核環境、驅動及操作系統底層UNIX 接口。內核以Mach爲基礎,它負責操作系統的各個方面,包括管理系統的虛擬內存、線程、文件系統、網絡以及進程間通訊。這一層包含的驅動是系統硬件和系 統框架的接口。出於安全方面的考慮,內核和驅動只允許少數系統框架和應用程序訪問。
應用程序可以使用iOS提供的LibSystem庫訪問多種操作系統底層功能。
LibSystem庫的接口基於C語言,可爲下述功能提供支持: 線程 (POSIX GCD),網絡 (BSD sockets),文件系統訪問,標準 I/O,Bonjour和 DNS服務,區域信息,內存分配,數學計算 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章