IOS框架和服務

6轉(zhuǎn)載-->>?IOS框架和服務

在iOS中框架是一個目錄,包含了共享資源庫,用于訪問該資源庫中儲存的代碼的頭文件,以及圖像、聲音文件等其他資源。共享資源庫定義應用程序可以調(diào)用的函數(shù)和方法。

iOS為應用程序開發(fā)提供了許多可使用的框架,并構(gòu)成IOS操作系統(tǒng)的層次架構(gòu),分為四層,從上到下依次為:Cocoa Touch Layer(觸摸UI層)、MediaLayer(媒體層)、Core Services Layer(核心服務層)、Core OS Layer(核心OS層)。

低層次框架提供IOS的基本服務和技術(shù),高層次框架建立在低層次框架之上用來提供更加復雜的服務和技術(shù),較高級的框架向較低級的結(jié)構(gòu)提供面向?qū)ο蟮某橄蟆?/p>

在開發(fā)應用時應盡可能使用較高級的框架。如果要開發(fā)的國內(nèi)在高層框架中沒有提供,你也可以使用較低層框架和技術(shù)。

Foundation和UIKit框架是應用編程用到的兩個主要的框架,能夠滿足大多數(shù)應用程序的開發(fā)需求。

UIKit框架提供的類,用于創(chuàng)建基于觸摸的用戶界面。所有iOS應用程序都是基于UIKit,沒有這個框架,就無法交付應用程序。UIKit提供應用程序的基礎(chǔ)架構(gòu),用于在屏幕上繪圖、處理事件,以及創(chuàng)建通用用戶界面及其中元素。UIKit還通過管理屏幕上顯示的內(nèi)容,來組織應用程序。

Foundation框架為所有應用程序提供基本的系統(tǒng)服務。應用程序以及UIKit和其他框架,都是建立在Foundation框架的基礎(chǔ)結(jié)構(gòu)之上。Foundation框架提供許多基本的對象類和數(shù)據(jù)類型,使其成為應用程序開發(fā)的基礎(chǔ)。它還制定了一些約定(如用于取消分配等任務),使代碼更加一致,可復用性更好。

整個框架架構(gòu)圖如下:

一Cocoa Touch Layer(觸摸UI層)

CocoaTouch Layer包含創(chuàng)建ios應用關(guān)鍵的框架。該層包含的框架定義應用的外觀,也提供基本的應用基礎(chǔ)和關(guān)鍵的技術(shù)支持,例如多任務、觸摸輸入、推送通知和許多其它的高級系統(tǒng)服務。在開發(fā)應用時,應當首先研究該層的技術(shù)和技術(shù)看是否能夠滿足需要。

1.1 Cocoa Touch Layer包含如下關(guān)鍵技術(shù)

1).AirDrop

AirDrop允許用戶與附近設(shè)備共享圖片、文檔、urls鏈接以及其它種類的數(shù)據(jù)。

2)、Text Kit

TextKit是處理文本和排版的一個全功能、高級別的類集合。使用Text Kit你能在段落、列或者頁上對帶有風格的文本進行布局;也能在任意區(qū)域(如圖形)周圍布局流動的文本;還能用它來管理多種字體。

開發(fā)應用時應該首先考慮使用Text Kit來進行文本呈現(xiàn),而不是Core Text。Text Kit與所有UIKit中的基于文本的控制集成允許應用更容易地創(chuàng)建、編輯、顯示和存儲文本。

3)、UIKit Dynamics

UIKit dynamics用來為符合UIDynamicItem協(xié)議的UIView對象或其它對象規(guī)定動畫行為。通過在應用的UI中集成真實世界行為和特性進,動畫行為為應用提供了一種增強用戶體驗的方式。

4)、Multitasking

在ios中多任務用來設(shè)計來使電池使用時間最大化。

5)、Auto Layout

自動布局幫助你使用非常少的代碼來建立動態(tài)接口。

使用AutoLayout定義如何在用戶接口上布局元素的規(guī)則,這些規(guī)則表達了視圖類之間的關(guān)系,如規(guī)定一個按鈕總是處于它的父窗口的左邊緣20個點。

在Auto Layout中使用的實體是被稱為constraints的Objective-C對象。

6)、Storyboards

串聯(lián)圖 是設(shè)計應用用戶接口的推薦方式。串聯(lián)圖讓你在一個地方就能夠設(shè)計全部的用戶接口,方便在一個位置看到所有的視圖和視圖控制器以及理解它們是如何一起工作的。串聯(lián)圖的一個重要的部分是定義segues(segues是從一個視圖控制器到另一個的轉(zhuǎn)換)。這些轉(zhuǎn)換代表用戶接口之間的交互。你可以使用XCOE來可視的定義這些轉(zhuǎn)換或者通過編程啟動它們。

你能使用一個單串聯(lián)圖文件來存儲所有的應用視圖控制器和視圖,或者使用多個視圖串聯(lián)圖文件來組織用戶接口。

在應用建立時間,Xcode讀取串聯(lián)圖文件的內(nèi)容并把它分成多個能獨立加載的離散的片斷,以便獲得更好的性能。UIKit框架提供了相應的類來從程序中存取一個串聯(lián)圖的內(nèi)容。

7)、UI State Preservation

UI狀態(tài)保存能夠使應用表現(xiàn)的一直運行,從而為用戶提供無縫的體驗。如果系統(tǒng)遇到內(nèi)存壓力,系統(tǒng)可能安靜地強制停止一個或多個后臺應用。

當應用從前臺移到后臺時,該服務能保存應用的視圖和視圖控制器的狀態(tài)。在下次應用重新啟動時,能夠使用先前保存的狀態(tài)信息來恢復視圖和視圖控制器到它們先前的配置,使應用表現(xiàn)得好像一直在運行。

8)、Apple Push Notification Service

蘋果的推送通知服務提供了一種提示用戶關(guān)于新信息的方式,即使應用當前不在激活運行狀態(tài)。

使用該服務,你能推送文本通知,在應用圖標上增加一個標記或者在任意時間觸發(fā)聲音提示。

這些消息讓用戶知道他們應該打開應用來接收相關(guān)信息。自Ios7開始,你甚至能推送無聲的通知來讓應用知道有了新的內(nèi)容可以下載。

為了使用IOS應用的推送通知,用戶需要做兩部分的工作。首先應用必須登記該通知服務以及在通知被提交時處理相關(guān)的通知數(shù)據(jù)。第二,你必須提供一個服務端的進程來產(chǎn)生通知。

服務端的進程可以使用你自己的本地服務器或者使用蘋果的推送通知服務。

9)、Local Notifications

本地通知作為推送通知機制的補充,可以給應用提供一種不依賴外部服務器產(chǎn)生本地通知的方式。

運行在后頭的應用能使用本地通知作為當重要的事件發(fā)生時引起用戶注意的一種方式。例如,運行在后臺的導航應用能使用本地通知來提示用戶什么時間該轉(zhuǎn)彎了。

應用也能調(diào)度本地通知在將來的時間提交以及使那些通知在應用不運行也能被提交。

本地通知的一個優(yōu)點是它們與你的應用是獨立的。在一個通知已被調(diào)度,系統(tǒng)管理它的提交。另外當通知被提交時你的應用甚至不必運行。

10)、Gesture Recognizers

手勢識別用來檢測通常類型的手勢。由于手勢識別使用與系統(tǒng)檢測手勢相同的試探方法,因此手勢識別為應用提供了一個一致的行為。為了使用它,你能在你的視圖上附加手勢識別功能和并給它提供一個在手勢出現(xiàn)時要執(zhí)行的方法。

手勢識別跟蹤原始的觸摸事件和確定它們什么時候與想要的手勢匹配。

11)、System View Controllers

許多系統(tǒng)框架為標準的系統(tǒng)接口定義了視圖控制器。只要有可能,為了呈現(xiàn)一致的用戶體驗,就應該使用系統(tǒng)提供的視圖控制器而不是創(chuàng)建一個新的。

2.2 Cocoa Touch層框架

CoCoa Touch層包含如下框架:

1、Address Book UI Framework(地址本UI框架)

該框架提供一個面向?qū)ο蟮木幊探涌?。用來顯示標準的系統(tǒng)接口,來創(chuàng)建新的聯(lián)系人和編輯和選擇已存在的聯(lián)系人。

2、Event Kit UI Framework(月歷事件UI框架)

該框架提供一個視圖控制器來呈現(xiàn)標準的系統(tǒng)接口,來觀察和編輯月歷相關(guān)的事件。EventKit UI Framework基于Event Kit framework框架。

3、Game Kit Framework(游戲工具框架)

該框架實現(xiàn)對游戲中心的支持,讓用戶能夠在線共享他們的游戲相關(guān)的信息。

4、iAd Framework(iAD框架)

該框架用來在應用中提供廣告條。

當你想要顯示廣告時,廣告條與用戶UI上的標準的視圖進行合并。

這些視圖與蘋果的iAd服務一起工作,自動處理、加載和呈現(xiàn)富媒體廣告以及應答在那些廣告條上的點擊等所有相關(guān)的工作。

5、Map Kit Framework(地圖工具框架)

MapKit提供與應用的UI組合的一個可滾動的地圖。

除了顯示一個地圖,你能使用該框架接口來定制地圖的內(nèi)容和外觀,也能使用注解來標記感興趣的點,也能使用定制的內(nèi)容來與地圖內(nèi)容疊置。例如,你可以在地圖上來畫一條公交路線,或者使用注解來高亮顯示附近的商店和餐館。

除了顯示地圖,MapKit框架還能與地圖應用以及蘋果的地圖服務器集成來為用戶指引方向。

地圖應用能夠給任意支持方向的應用提供方向的代理。如提供特定類型方向的應用,例如一個顯示地鐵路線的應用,能登記請求接收地圖應用提供的方向。

應用也能向蘋果的服務器請求步行或駕駛方向,并與他們定制的方向的路徑信息混合來為用戶提供完整的點到點體驗。

6、Message UI Framework( 消息UI框架)

該框架用來在應用中提供編輯郵件和sms消息的支持。

編輯支持包括一個呈現(xiàn)到你的應用的視圖控制器接口,并能設(shè)置這個視圖控制器的一些區(qū)域,如接收人、主題、郵件主體和郵件想包括的任意附件。

在呈現(xiàn)視圖控制器后,也能為用戶提供一個在發(fā)送郵件之前可以編輯郵件的選項。

7、UIKit Framework

該框架提供實現(xiàn)圖形和事件驅(qū)動的應用的至關(guān)重要的基礎(chǔ)。包括:

1、基本的應用管理和基礎(chǔ)設(shè)施,包括應用的主循環(huán);

2、用戶接口管理,包括對storyboards和nib文件的支持;

3、一個用來封裝用戶UI內(nèi)容的視圖控制器模式;

4、?標準系統(tǒng)視圖和控制對象;

5、提供處理觸摸和運動事件的支持;

6、支持包括與iCloud集成功能的文檔模式;

7、?圖形和窗口支持,包括支持外部顯示器;

8、多任務支持;

9、打印支持;

10、?定制標準UIKit控制的外觀;

11、支持文本和web內(nèi)容;

12、剪切、復制、粘貼的支持;

13、支持動畫UI;

14、通過url語義和框架接口與系統(tǒng)提供的其它應用集成的能力;

15、對有障礙用戶的可存取性的支持;

16、支持ApplePush Notification服務;

17、本地通知調(diào)度和提交;

18、pdf 創(chuàng)建;

19、支持定制像系統(tǒng)鍵盤行為一樣的用戶輸入視圖;

20、支持創(chuàng)建與系統(tǒng)鍵盤交互的定制的文本視圖;

21、支持通過email,Twitter, Facebook和其它服務共享內(nèi)容。

也支持一些設(shè)備特定功能的集成,例如

1、內(nèi)建的攝像機;

2、用戶的圖片庫;

3、設(shè)備名和模式信息;

4、電池狀態(tài)信息;

5、接近傳感器信息;

6、來自附件耳機的遠程控制信息

二、MediaLayer(媒體層)

媒體層包含在應用中實現(xiàn)多媒體體驗的圖形、聲音、視頻技術(shù)和框架。使用這層的技術(shù)可以使你容易的建立更加好看和好聽的應用。

2.1 包含的關(guān)鍵技術(shù)

2.1.1 圖形技術(shù)

高質(zhì)量的圖形是所有應用的重要的組成部分。IOS提供了許多幫助你定制藝術(shù)和圖形屏幕的技術(shù)。IOS圖形技術(shù)為其提供了廣泛的支持,并可以與UIKit視圖架構(gòu)無縫工作。

你能使用標準的視圖來快速提交高質(zhì)量的接口,或者使用本層的圖形技術(shù)創(chuàng)建你自己的定制視圖來提交一個更加豐富的圖形體驗。

1)、UIKit graphics

UIKit定義的繪制圖像和Bézier路徑,以及動畫視圖內(nèi)容的高級別技術(shù)。

UIKit視圖提供快速和有效的方式來呈現(xiàn)圖像和文本內(nèi)容。

UIKIT視圖也能通過顯示和使用UIKitdynamics技術(shù)進行動畫,并為用戶提供反饋,促進用戶交互。

2)、CoreGraphics 框架

CoreGraphics也稱作Quartz,是對定制的2D向量和圖像呈現(xiàn)提供支持的本地繪制引擎。

該框架提供的引擎雖然沒有OpenGLES引擎速度快,但該框架能夠很好地適合于呈現(xiàn)定制的2d圖形和動態(tài)圖像。

3)、CoreAnimation框架

CoreAnimation也是Quartz核心框架的一部分,是優(yōu)化應用動畫體驗的基礎(chǔ)技術(shù)。

UIKit視圖基于?Core Animation提供視圖級別的動畫支持。

當你想對動畫行為有更多控制時也能直接使用CoreAnimation。

4)、Core Image

CoreImage提供非破壞的方式操作視頻和靜態(tài)圖像。

5)、OpenGL ES及GLKit

OpenGLES使用硬件加速接口來處理先進的2d 和3d 呈現(xiàn)。OpenGLES通常由游戲開發(fā)者或想實現(xiàn)沉浸式圖像體驗的開發(fā)者使用。

OpenGLES框架提供對呈現(xiàn)過程的全部控制,以及提供創(chuàng)建平滑動畫所需要的幀速。

GLKit是一組Objective-C類,以便能夠使用面向?qū)ο蠼涌趤硖峁㎡penGL ES的強大能力。

6)、Text Kit和CoreText

Text Kit是UIKit框架的家族,用來來執(zhí)行最好的排面和文本管理。如果你的應用實現(xiàn)先進的文本操作,Text Kit提供與應用視圖的無縫集成。

CoreText是處理先進排面和布局的低級別的c語言框架。

7)、Image I/O

ImageI/O提供讀寫大多數(shù)圖像格式的接口。

8)、Assets Library

AssetsLibrary框架讓你存取用戶的圖片、視頻和媒體。

你想在應用中集成用戶自己的內(nèi)容時可以使用該框架。

2.1.2 聲音技術(shù)

聲音技術(shù)工作于底層硬件之上,為用戶提供更加豐富的聲音體驗。這些體驗包括播放和記錄高質(zhì)量的聲音、處理MIDI內(nèi)容以及使用設(shè)備內(nèi)建的聲音 等能力,

1). Media Player framework

該框架是一個高級別的框架, 用來為用戶提供對iTunes庫存取的容易方式,也提供對播放軌跡和播放列表的支持。

當你想快速在應用中集成聲音以及不需要控制播放行為時可以使用該框架。

2)、AV Foundation

AVFoundation是管理聲音以及視頻播放和記錄的面向?qū)ο蠼涌凇?/p>

在記錄聲音和想對聲音播放過程有更好的控制時可以使用該框架。

3)、OpenAL

OpenAL是一個提供位置音效的跨平臺的工業(yè)標準技術(shù)和接口。

游戲開發(fā)者經(jīng)常使用該技術(shù)來提供高質(zhì)量的聲音。

4)、Core Audio

Core Audio是一組簡單和智能的接口來記錄和播放聲音以及MIDI內(nèi)容。

在需要對聲音有更好控制時使用該框架。

2.1.3??視頻技術(shù)

視頻技術(shù)提供管理應用中的靜態(tài)視頻內(nèi)容或者播放來自Internet的視頻流的支持。

對于帶有適當?shù)挠涗浻布脑O(shè)備,該框架還能夠記錄視頻以及與應用進行集成。

1).UIImagePickerController

UIImagePickerController是一個選擇用戶媒體文件的UIKit視圖控制器。

2)、Media Player

MediaPlayer框架提供一組呈現(xiàn)視頻內(nèi)容的簡單易用的接口,該框架支持全屏和小窗口視頻播放,也為用戶提供可選的播放控制。

3)、AVFoundation

AVFoundation提供先進的視頻播放和記錄能力。

在需要對視頻呈現(xiàn)和記錄有更多的控制時使用該框架,例如在實時應用中分層顯示實時視頻和應用提供的其它內(nèi)容。

4)、CoreMedia

CoreMedia框架為操作媒體定義低級別的數(shù)據(jù)類型和接口。

當你需要對視頻內(nèi)容有無比的控制時可以使用該框架。

2.1.4??AirPlay技術(shù)

AirPlay讓應用串流聲音和視頻內(nèi)容到Apple TV或者串流聲音內(nèi)容到第三方揚聲器和接收器。

AirPlay內(nèi)建于許多框架,包括UIKit、Media Player、AVFoundation、Core Audio。因此在大多數(shù)情況你不需要為了支持它做任何事。在使用那些框架時,當播放內(nèi)容時自動獲得AirPlay支持。當用戶選擇使用AirPlay播放內(nèi)容時系統(tǒng)自動進行路由。

2.2包含的框架

MediaLayer提供如下框架和服務。

2.2.1、Assets Library 框架

AssetsLibrary 框架(AssetsLibrary.framework)提供對用戶設(shè)備上圖片應用管理的圖片和視頻的存取。

使用該框架來存取用戶保存的圖片相冊或?qū)氲皆O(shè)備的任意相冊中的圖片,你也能保存新的圖片和視頻到用戶的圖片相冊。

2.2.2、AV Foundation 框架

AVFoundation?框架 (AVFoundation.framework)提供一組播放、記錄和管理聲音和視頻內(nèi)容的Objective-C類。

當你想在應用的ui接口無縫集成媒體能力時使用該框架。

你也能使用它來進行更先進的媒體處理,例如同時播放多個聲音或者控制播放和記錄過程的多個方面。

該框架提供的服務包括:

1)聲音會話管理,包括對系統(tǒng)聲明你的應用聲音能力;

2)對應用媒體資源的管理;

3)對編輯媒體內(nèi)容的支持;

4)捕捉聲音和視頻的能力;

5)播放聲音和視頻的能力;

6)軌跡管理;

7)媒體元數(shù)據(jù)的管理;

8)立體拍攝;

9)聲音之間的精確同步;

10)提供一個確定聲音文件細節(jié)內(nèi)容的Objective-C接口,例如數(shù)據(jù)格式,采樣率,通道數(shù);

11)?通過AirPlay串流內(nèi)容。

2.2.3、Core Audio 框架

Core Audio是一個對聲音處理提供本地支持的框架家族。這些框架支持聲音的產(chǎn)生、記錄、混合和回放。你也能使用這些接口處理MIDI內(nèi)容以及串流聲音和MIDI內(nèi)容到其它應用。

Core Audio框架包括如下框架:

CoreAudio.framework

定義Core Audio框架使用的所有數(shù)據(jù)類型。

AudioToolbox.framework

提供聲音文件和聲音流的播放和記錄服務。也提供管理聲音文件,播放系統(tǒng)警告聲音,在某些設(shè)備上觸發(fā)震動的支持。

AudioUnit.framework

提供使用內(nèi)建聲音單元。也提供使你的應用的聲音內(nèi)容作為對其它應用可視的聲音組件的支持。

CoreMIDI.framework

提供與MIDI設(shè)備通訊的標準方式,包括硬件鍵盤和合成器。你使用這個框架來發(fā)送和接收MIDI消息以及與通過dock連接器或網(wǎng)絡(luò)連接到IOS設(shè)備的MIDI外設(shè)交互。

MediaToolbox.framework

提供對聲音tap接口的存取。

2.2.4、Core Graphics 框架

CoreGraphics.framework包含Quartz 2D繪制api。

Quartz是一個原先用在OS X的先進的、向量繪制引擎。Quartz支持路徑繪制,抗鋸齒呈現(xiàn),剃度,圖像,顏色,坐標空間轉(zhuǎn)換以及pdf 內(nèi)容創(chuàng)建、顯示和分析等功能。

雖然這個api是C-based接口,但它使用了面向?qū)ο蟪橄髞肀憩F(xiàn)基本的繪制對象,因此使它容易存儲和重用圖形內(nèi)容。

2.2.5、Core Image 框架

CoreImage 框架(CoreImage.framework)提供一組強大的內(nèi)建過濾器來操作視頻和靜態(tài)圖像。

你能在觸摸彈起、糾正圖片以及面部和特征檢測等許多方面使用這些內(nèi)建的過濾器。這些過濾器的先進特點是它們操作在非破壞方式,即原先的圖像不被改變。

這些過濾器針對底層硬件進行了優(yōu)化,因此它們是快速和有效的。

2.2.6、Core Text 框架

CoreText?框架 (CoreText.framework)提供一個對文本進行布局和字體處理的簡單的、高性能的C-based接口。

該框架用在不使用TextKit但仍想獲得在字處理應用中發(fā)現(xiàn)的先進文本處理能力。

該框架提供了一個智能的文本布局引擎,包括在其它內(nèi)容周圍環(huán)繞文本的能力,它也支持使用多種字體和呈現(xiàn)屬性的先進的文本風格。

2.2.7、Core Video 框架

CoreVideo 框架 (CoreVideo.framework)為Core Media框架提供緩沖和緩沖池支持。多數(shù)應用從不直接使用該框架。

2.2.8、Game Controller 框架

GameController?框架 (GameController.framework)讓你在應用中發(fā)現(xiàn)和配置針對iPhone/iPod/iPad設(shè)備的游戲控制器。

游戲控制器可以是物理連接到iOS設(shè)備或者是通過藍牙無線連接。GameController框架當控制器可獲得時通知你的應用讓應用可以規(guī)定哪個控制器輸入與你的應用相關(guān)。

2.2.9、GLKit 框架

GLKit框架 (GLKit.framework)包含一組簡化創(chuàng)建OpenGLES應用的Objective-C based 單元類。

GLKit支持應用開發(fā)的四個關(guān)鍵領(lǐng)域

1)GLKView和GLKViewController類提供一個OpenGLES視圖和其呈現(xiàn)循環(huán)的標準實現(xiàn)。

OpenGLES視圖代表應用管理底層的framebuffer對象。應用只需在視圖上繪制。

2) GLKTextureLoader類提供在你的應用中使用圖像轉(zhuǎn)換和加載線程,允許應用自動加載紋理圖像到應用的上下文。

能夠異步或同步加載紋理。當異步加載紋理時,應用應提供一個完成處理塊,該處理塊在紋理加載進應用上下文時被調(diào)用。

3)GLKit框架提供向量、矩陣和3d 旋轉(zhuǎn)以及提供OpenGLES 1.1上的矩陣。

4)GLKBaseEffect,GLKSkyboxEffect,和GLKReflectionMapEffect類實現(xiàn)給通用圖形操作提供可配置的圖形著色。尤其GLKBaseEffect類實現(xiàn)了OpenGL ES 1.1規(guī)范上的光亮和材質(zhì)模式,簡化了移植一個應用從OpenGL ES 1.1到OpenGL ES最后版本的努力。

2.2.10、Image I/O 框架

ImageI/O 框架(ImageIO.framework)提供輸入和輸出圖像數(shù)據(jù)和圖像元數(shù)據(jù)的接口。

該框架利用CoreGraphics數(shù)據(jù)類型和功能,并支持在ios 上所有的可獲得的標準的圖像類型。你能使用這個框架存取Exif和IPTC元數(shù)據(jù)屬性。

2.2.11、Media Accessibility 框架

MediaAccessibility?框架 (MediaAccessibility.framework)管理媒體文件中closed-caption內(nèi)容的呈現(xiàn)。

該框架與新的設(shè)置配合工作可以讓用戶決定是否允許closed-caption顯示。

2.2.12、Media Player 框架

MediaPlayer 框架(MediaPlayer.framework)提供應用中播放聲音和視頻的高級別支持。能夠使用該框架做如下工作:

1)?播放視頻到用戶屏幕或通過AirPlay到另外的設(shè)備屏幕。能夠全屏幕播放視頻或以可改變視圖大小的方式播放。

2)存取用戶的iTunes音樂庫。能夠播放音樂軌跡和播放列表、搜索音樂、給用戶提供一個媒體picker呈現(xiàn)接口。

3)配置和管理電影的回放。

4)?在鎖定屏幕和app 切換窗口上顯示NowPlaying信息。當內(nèi)容通過AirPlay提交時還能顯示到AppleTV上。

5)檢測視頻通過AirPlay被串流的時間。

2.2.13、OpenAL 框架

OpenAudio Library (OpenAL)接口是用來在應用中提供位置音效的跨平臺的標準。

能夠使用該接口在游戲和其它需要位置音效輸出的程序中實現(xiàn)高性能、高質(zhì)量的聲音。

因為OpenAL是跨平臺的標準,在iOS使用OpenAL編寫的代碼能夠容易地移植到許多其它平臺。

2.2.14、OpenGL ES 框架

OpenGLES?框架 (OpenGLES.framework)提供繪制2d和3d內(nèi)容的工具, 它是一個C-based的框架。

該框架以最接近設(shè)備硬件的方式為全屏沉浸式應用例如游戲提供細粒度的圖形控制和高的幀率。

你能夠與EAGL配合使用這個框架,為OpenGL ES 繪制調(diào)用和UIKit的本地窗口對象之間提供接口。

該框架支持OpenGLES 1.1, 2.0,?3.0規(guī)范。2.0規(guī)范增加了片段和頂點著色的支持,3.0規(guī)范增加了更多的功能,包括多個呈現(xiàn)目標和變換反饋。

2.2.15、Quartz Core 框架

QuartzCore 框架(QuartzCore.framework)包含Core Animation接口。

Core Animation是一個先進的復合技術(shù),使用它能容易創(chuàng)建快和有效的view-based的動畫。

復合引擎利用底層硬件來有效的實時操作視圖內(nèi)容。

只需規(guī)定動畫的起始點,CoreAnimation做剩下的工作。

因為Core Animation內(nèi)嵌在UIView架構(gòu)的底層,因此它總是可用的。

2.2.16Sprite Kit 框架

SpriteKit?框架 (SpriteKit.framework)框架為2d和2.5d游戲提供硬件加速的動畫系統(tǒng)。

SpriteKit提供大多數(shù)游戲需要的基礎(chǔ),包括一個圖形引擎和動畫系統(tǒng),聲音播放支持,一個物理仿真引擎。使用SpriteKit不需你自己創(chuàng)建這些事情,使你聚焦在內(nèi)容設(shè)計和內(nèi)容的高級別的交互上。

在Sprite Kit應用中內(nèi)容組織為場景。一個場景包括紋理對象,視頻,路徑圖形,核心圖像過濾器和其它的特效。SpriteKit利用這些對象,確定這些對象到屏幕上的最有效的方式。當在場景中到了動畫內(nèi)容的時刻,你能使用SpriteKit來顯式規(guī)定你想執(zhí)行的行動或使用物理仿真引擎來為那些對象定義物理行為(例如重力、引力或排拆力)。

除了SpriteKit框架,也有其它Xcode工具來創(chuàng)建顆粒發(fā)射效果和紋理圖。你能使用Xcode工具來管理應用資源和快速地更新Sprite Kit場景。

三?CoreServices Layer(核心服務層)

CoreServices Layer包含應用需要的基礎(chǔ)的系統(tǒng)服務。這些服務中的核心是CoreFoundation和Foundation框架,定義了所有應用使用的基本類型。

該層也包含獨立的技術(shù)來支持一些其它功能, 例如位置、iCloud、社交媒體和網(wǎng)絡(luò)。

3.1 包含的高級功能:

Peer-to-Peer Services(點到點服務)

這個Multipeer Connectivity框架提供通過藍牙進行p2p連接的能力。

你能使用p2p連接來啟動與附近設(shè)備的通訊會話。

雖然p2p連接主要用在游戲中,你也能在其它類型的應用中使用這個功能。

iCloud Storage(云存儲)

iCloud存儲讓應用把用戶文檔和數(shù)據(jù)寫到一個中心位置,用戶然后能從他們的計算機和ios 設(shè)備存取這些數(shù)據(jù)。

使用iCloud可以使用戶文檔無所不在,意味著用戶能從任何設(shè)備閱讀或編輯那些文檔,而不需要顯式的同步或文件傳輸。存儲文檔到用戶的iCloud賬戶也為用戶提供了一層安全。即使用戶的設(shè)備丟失,那些設(shè)備上的文檔如果已經(jīng)保存到iCloud就不會丟失。

應用能以兩種方式使用 iCloud存儲,每一種有不同的使用意圖:

1) iCloud文檔存儲。

可以使用這個功能在用戶的iCloud賬戶存儲用戶文檔和數(shù)據(jù)。

2)iCloud鍵值存儲。

使用這個功能在應用之間共享數(shù)據(jù)。

大多數(shù)應用使用iCloud文檔存儲來共享來自用戶賬戶的文檔。使用iCloud文檔存儲用戶關(guān)心的是文檔能否能夠在設(shè)備之間共享以及他們是否能夠從一個給定設(shè)備查看和管理那些文檔。

相對的,iCloud鍵值存儲是應用與應用的其它實例共享小量數(shù)據(jù)(幾十k字節(jié))的方式,應用應當用它存儲非緊急的應用數(shù)據(jù),例如設(shè)置。

Automatic Reference Counting(自動引用計數(shù))

AutomaticReference Counting(ARC)是一個編譯級別的功能,用它來簡化Objective-C對象生命周期過程的管理,以此代替用戶必須記住什么時候應該保持和釋放對象。

ARC評估對象的生命周期需求和自動在編譯時間插入適當?shù)姆椒ㄕ{(diào)用。

ARC用來代替ios 的早期版本中存在的傳統(tǒng)的管理內(nèi)存的編程模式。

新創(chuàng)建的工程自動使用ARC。XCODE也提供了移植工具幫助你轉(zhuǎn)換遺留的工程來使用ARC.

Block Objects(塊對象)

BlockObjects是一個能夠與你的C或Objective-C代碼集成的C語言的構(gòu)造塊。一個blockobject本質(zhì)上是一個異步功能和相關(guān)的數(shù)據(jù)。在其它語言中有時也被稱做closure或lambda。

Blocks尤其用作回調(diào)或放在你需要一種容易的組合執(zhí)行代碼和相關(guān)數(shù)據(jù)方式的地方。

在ios,通常在下面的場景使用Blocks:

1)作為代理或代理方法的代替;

2) 作為回調(diào)功能的代替;

3)為某個一次性操作實現(xiàn)其完成處理函數(shù);

4)? 在一個集合中的所有項上執(zhí)行一個任務;

5)與提交隊列一起執(zhí)行異步任務。

Data Protection(數(shù)據(jù)保護)

DataProtection允許應用利用設(shè)備上已有的內(nèi)建的加密方法來使用用戶的敏感數(shù)據(jù)。

當應用指定一個特定的文件被保護時,系統(tǒng)在磁盤上以加密格式存儲該文件。當設(shè)備鎖定時,該文件的內(nèi)容不能被應用和任何潛在的侵入者存取??墒钱斣O(shè)備由用戶解鎖時,一個解密key被創(chuàng)建允許你的應用存取那個文件。

用戶也可以使用其它級別的數(shù)據(jù)保護機制。

實現(xiàn)數(shù)據(jù)保護需要你考慮如何創(chuàng)建和管理你想保護的數(shù)據(jù)。應用必須設(shè)計在數(shù)據(jù)的創(chuàng)建時間加密數(shù)據(jù),以及當用戶鎖定或解鎖設(shè)備時為存取條件改變做好準備。

File-Sharing Support(文件共享支持)

File-SharingSupport使用戶數(shù)據(jù)文件在iTunes 9.1和以后上可被其它應用獲得。一個應用聲明支持文件共享使它的/Documents目錄下的內(nèi)容對其它用戶可獲得。用戶然后當需要時能夠把文件從iTunes移進或移出應用的Documents目錄。

這個特征不允許應用與相同設(shè)備上的其它應用共享應用,這需要粘貼板或一個文檔交互控制器對象。

應用為了允許文件共享支持,需要做如下工作:

1、 在應用的Info.plist文件中增加UIFileSharingEnabled鍵,并設(shè)置其值為YES。

2)、在你的應用的Documents中放你想共享的文件;

3、當設(shè)備插進用戶的計算機時,iTunes在選中設(shè)備的Apps標簽下顯式一個文件共享節(jié);

4、用戶然后能夠增加文件到設(shè)備的文檔目錄或移動文件到桌面。

支持文件共享的應用應該能夠識別文件什么時候增加到其Documents目錄和做出適當?shù)膽稹@鐟每梢允谷我庑挛募膬?nèi)容可以從它的接口獲得。也應該從不把Documents目錄的文件列表呈現(xiàn)給用戶來請求用戶決定對那些文件做什么。

Grand Central Dispatch

GrandCentral Dispatch(GCD)是一個BSD技術(shù),應用可以用來管理其任務的執(zhí)行。

GCD與高優(yōu)化的核組合成一個異步編程模式,來提供方便和更有效的對線程的替代。GCD也為許多低級別的任務提供一個方便的選擇,例如讀和寫文件描述符,實現(xiàn)定時器和監(jiān)視信號和處理事件。

In-App Purchase(應用內(nèi)購買)

In-App Purchase 提供在應用中銷售應用特定的內(nèi)容和服務以及來自iTunes的內(nèi)容的能力。

這個功能使用StoreKit框架實現(xiàn),并提供使用用戶的iTunes賬號來處理金融方面的事務需要的基礎(chǔ)。

應用處理全部用戶體驗和供購買的內(nèi)容及可獲得服務的呈現(xiàn)。作為可下載的內(nèi)容,你能把可下載的內(nèi)容放到你自己的服務器或使用蘋果的服務器。

SQLite

SQLite庫讓你在你的應用中嵌入一個輕量級的sql數(shù)據(jù)庫,而不需要運行一個分離的遠程數(shù)據(jù)庫服務進程。從你的應用,你能創(chuàng)建本地數(shù)據(jù)庫文件,管理數(shù)據(jù)庫表和表中的數(shù)據(jù)記錄。

SQLite庫為通用功能使用設(shè)計,但已經(jīng)被優(yōu)化來提供對數(shù)據(jù)記錄更快速的存取。

XML Support

Foundation框架提供一個NSXMLParser類用來從一個xml文檔中引出元素。

操作xml內(nèi)容的額外的支持由libxml2庫提供支持。libxml2開源庫讓你快速地分析或?qū)懭我獾膞ml數(shù)據(jù)和轉(zhuǎn)換xml內(nèi)容到html.

3.2 Core Services Frameworks(核心服務框架)

Core Services Frameworks包含下面的一些框架。

1)、Accounts Framework(帳戶框架)

Accounts框架 (Accounts.framework)為確定的用戶賬號提供單點登錄模式。

單點登錄通過消除用戶分離的多個賬號需要的多次登錄提示,來增強用戶體驗。它也通過為應用管理賬號認證過程來簡化開發(fā)模式。

該框架需要與Social框架配合使用。

2)Address Book Framework(地址本框架)

AddressBook 框架(AddressBook.framework)提供可編程存取用戶的聯(lián)系人數(shù)據(jù)庫的方式。

如果應用使用聯(lián)系人信息,你能使用該框架來存取和修改聯(lián)系人信息。例如一個聊天應用可以使用該框架來引出可能的聯(lián)系人列表,通過聯(lián)系人列表來啟動一個會話以及在特定視圖顯示那些聯(lián)系人。

重要提示:存取用戶的聯(lián)系人數(shù)據(jù)需要用戶的明確的許可。應用因此必須準備好用戶拒絕存取的情形。應用也鼓勵提供Info.plist鍵來描述需要存取的原因。

3)Ad Support Framework(廣告支持框架)

AdSupport?框架 (AdSupport.framework)提供存取應用用于廣告功能的一個標識。

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

4)CFNetwork 框架

CFNetwork框架 (CFNetwork.framework)是高性能的使用面向?qū)ο髮W(wǎng)絡(luò)協(xié)議進行抽象的一組C-based接口。這些抽象提供對協(xié)議棧細節(jié)的控制,使它容易使用低級別的構(gòu)造例如BSDsockets。

你能使用該框架簡化與ftp或http服務器通訊或決定dnshosts的任務。使用CFNetwork 框架,你能:

1、使用BSD sockets。

2、使用SSL或TLS創(chuàng)建安全連接。

3、決定dnshosts。

4、與HTTP服務器、認證HTTP服務器、HTTPS服務器交互。

5、與FTP服務器交互。

6、發(fā)布、解決和瀏覽Bonjour服務。

CFNetwork物理和理論上基于BSD sockets。

5)Core Data 框架

CoreData?框架 (CoreData.framework)框架是管理MVC應用中的數(shù)據(jù)模式的一種技術(shù)。

CoreData框架打算在數(shù)據(jù)模式是高結(jié)構(gòu)化的應用中使用。

代替編程定義數(shù)據(jù)結(jié)構(gòu),在xcode中能夠使用圖形工具來建立一個表現(xiàn)你的數(shù)據(jù)模式的綱要。在運行時,你的數(shù)據(jù)模式實體的實例通過CoreData框架被創(chuàng)建、管理和獲得。

通過為你的應用管理其數(shù)據(jù)模式,CoreData大大減少了必須書寫的代碼量。CoreData也提供如下功能:

1、為優(yōu)化性能在SQLite數(shù)據(jù)庫中存儲對象數(shù)據(jù);

2、一個管理數(shù)據(jù)表視圖結(jié)果的NSFetchedResultsController類;

3、對基本的文本編輯之外的undo/redo的管理;

4、支持屬性值的校驗;

5、支持傳播改變確保對象之間的關(guān)系保持一致性;

6、支持分組、過濾和在內(nèi)存中優(yōu)化數(shù)據(jù)。

如果你開始開發(fā)一個新應用或計劃對已有應用進行大的更新,應該考慮使用CoreData。

6)Core Foundation 框架

CoreFoundation?框架 (CoreFoundation.framework)是一組C-based接口,為ios應用提供基本的數(shù)據(jù)管理和服務功能。該框架包括如下支持:

集合數(shù)據(jù)類型(數(shù)組、集合等等);

應用打包Bundles;

字符串管理;

日期和時間管理

原始數(shù)據(jù)塊管理

Preferences管理;

URL和流操作;

線程

9、端口和socket通訊。

CoreFoundation框架與Foundation框架緊密相關(guān),為相同的基本功能提供Objective-C接口。

當你需要混合使用Foundation對象和Core Foundation類型時,你能利用兩個框架之間存在的“toll-freebridging”。toll-free bridging”意味著你能可交換地在兩個框架的方法和功能中使用一些CoreFoundation和Foundation類型。這個支持對許多數(shù)據(jù)類型可用,包括集合和字符串數(shù)據(jù)類型。

每個框架的類和類型描述聲明一個對象是否是toll-freebridged以及在是的情況下來標識它連接到什么對象。

7)Core Location 核心位置框架

CoreLocation?框架? (CoreLocation.framework)為應用提供位置信息。該框架使用板上的GPS、蜂窩、或者Wi-Fi來定位用戶的當前經(jīng)度和緯度。

你可在你的應用中集成該技術(shù)為用戶提供位置信息。例如,你可實現(xiàn)一個基于用戶的當前位置搜索附近餐館、商店或者銀行的應用。CoreLocation框架也提供如下能力:

1) 在包括磁力計的ios設(shè)備上存取羅盤信息;

2) 基于地理位置或藍牙beacon進行區(qū)域監(jiān)視;

3)?支持使用蜂窩基站的低耗電的位置監(jiān)視;

4)與MapKit配合來增強在特定情景下的位置數(shù)據(jù)的質(zhì)量,例如開車時。

8)Core Media Framework(核心媒體框架)

CoreMedia 框架(CoreMedia.framework)提供由AV Foundation框架使用的低級別的媒體類型。大多數(shù)應用從不需要使用該框架,但少數(shù)需要更精確控制音視頻內(nèi)容創(chuàng)建和呈現(xiàn)的開發(fā)者可以使用它。

9)Core Motion Framework (核心運動框架)

CoreMotion?框架 (CoreMotion.framework)提供一組接口來存取設(shè)備上可獲得的運動數(shù)據(jù)。

該框架支持使用一組新的block-based接口來存取原始和加工過的加速度計數(shù)據(jù)。對于帶有陀螺儀的設(shè)備,你也能獲得原始的陀螺儀數(shù)據(jù)和加工過的反應設(shè)備方向和旋轉(zhuǎn)速度的數(shù)據(jù)。

你能在游戲或其它使用運動作為輸入或作為增強用戶體驗的方式的應用中使用加速度計和陀螺儀兩種數(shù)據(jù)。對于帶有計步硬件的設(shè)備,你能存取它的數(shù)據(jù)來跟蹤健康相關(guān)的運動。

10)Core Telephony Framework(核心電話框架)

CoreTelephony?框架 (CoreTelephony.framework)提供與蜂窩電話的通話相關(guān)的信息交互的接口。

可以使用該框架來獲得用戶的蜂窩服務提供者的信息。對于對蜂窩call事件感興趣的應用例如VoIP應用也能在那些事件出現(xiàn)時被通知。

11)Event Kit 框架

EventKit?框架 (EventKit.framework)提供存取用戶設(shè)備上的月歷事件的接口。能夠使用該框架來做如下事情:

1)?獲得用戶月歷上存在的事件和提示;

2)增加事件到用戶月歷;

3)為用戶創(chuàng)建提示和使它們出現(xiàn)在提示應用中;

4)為月歷事件配置提示信號,包括設(shè)置提示信號應該什么時候觸發(fā)的規(guī)則。

重要提示:存取用戶的月歷和提示數(shù)據(jù)需要用戶的明確許可。應用因此必須準備好用戶拒絕的情形,也鼓勵應用在其Info.plist文件中提供一個描述需要存取原因的鍵。

12)Foundation框架

Foundation框架 (Foundation.framework)提供Core Foundation框架提供的許多功能的Objective-C封裝。該框架提供如下功能的支持:

集合數(shù)據(jù)類型(數(shù)組、集合等等);

應用打包Bundles;

字符串管理;

日期和時間管理

原始數(shù)據(jù)塊管理

Preferences管理;

URL和流操作;

線程和運行環(huán);

Bonjour;

通訊端口管理;

國際化;

規(guī)則表達式匹配;

Cache支持。

13)JavaScript??核心 框架

JavaScriptCore?框架 (JavaScriptCore.framework)為許多標準的JavaScript對象提供Objective-C語言的封裝。使用該框架來執(zhí)行JavaScript代碼和分析JSON數(shù)據(jù)。

14)Mobile Core Services (移動核心服務框架)

MobileCore Services 框架(MobileCoreServices.framework)定義在通用類型標識符(UTIs)中使用的低級別類型。

15)Multipeer Connectivity Framework(多方連接框架)

MultipeerConnectivity?框架 (MultipeerConnectivity.framework)支持附近設(shè)備的發(fā)現(xiàn),并與那些設(shè)備直接通訊(不需要Internet連接)。

使用該框架能夠與附近設(shè)備通訊、容易的創(chuàng)建多人會話、支持可靠地傳輸順序和實時數(shù)據(jù)。

該框架為發(fā)現(xiàn)和管理網(wǎng)絡(luò)服務提供可編程和UI-based的選項。應用能在ui中集成MCBrowserViewController類來顯示一個發(fā)現(xiàn)設(shè)備列表讓用戶選擇。另外也能使用MCNearbyServiceBrowser類來可編程的查找和管理對方設(shè)備。

16)Newsstand Kit 框架

Newsstand應用為用戶提供了一個閱讀雜志和報紙的中心位置。想通過Newsstand提供雜志和報紙內(nèi)容的出版商能夠使用NewsstandKit 框架(NewsstandKit.framework)創(chuàng)建它們自己的iOS應用,讓用戶啟動新雜志和報紙新聞的后臺下載。在啟動下載后,系統(tǒng)處理下載操作和當內(nèi)容可獲得時通知應用。

17)Pass Kit 框架

Passbook應用為用戶提供了一個存儲訂貨單、登機卡、入場券和商業(yè)折扣卡的位置。代替物理攜帶這些東西,用戶現(xiàn)在能在IOS設(shè)備上存儲它們,并和過去一樣的方式使用。

Pass Kit?框架 (PassKit.framework)提供把這些功能集成到你的應用的Objective-C接口。

你能與web接口和文件格式信息組合使用該框架來創(chuàng)建和管理你們公司提供的電子入場券。

電子入場券由你們公司的web service創(chuàng)建并通過email、Safari或定制的應用提交到用戶的設(shè)備。電子入場券本身使用特殊的文件格式,在提交之前被加密簽名。文件格式標識關(guān)于提供服務的相關(guān)信息以及用戶知道是什么服務的信息。

電子入場券也可以包含一個對卡進行校驗的條碼或其它信息,以便它能被兌換或使用。

18)Quick Look 框架

QuickLook 框架(QuickLook.framework)提供了一個預覽應用不直接支持的文件內(nèi)容的接口。

該框架主要打算用于應用從網(wǎng)絡(luò)下載文件或處理來自不知道來源的文件的工作。

在得到文件后,你能使用該框架提供的視圖控制器來直接顯示文件的內(nèi)容。

19)Safari Services 框架

SafariServices?框架 (SafariServices.framework)提供以可編程的方式增加URLs到用戶的Safari的書簽的支持。

20)Social Framework(社交框架)

Social框架(Social.framework)提供一個簡單的接口來存取用戶的社交媒體賬號。

該框架取代Twitter框架并增加了其它社交賬號,包括Facebook、Sina微博以及其它。

應用能使用該框架提交狀態(tài)更新和圖像到用戶賬號。該框架與Accounts框架一起為用戶提供單點登錄并確保存取的用戶賬號是經(jīng)過準許的。

21)Store Kit 框架

StoreKit?框架 (StoreKit.framework)提供在ios應用中購買內(nèi)容和服務的支持,也被稱作應用內(nèi)購買。

例如,你能使用該功能來允許用戶去鎖另外的應用功能。或者如果你是一名游戲開發(fā)者,你能使用它來提供另外的游戲級別。在這兩種情況,StoreKit框架處理事務的收入方面事務,包括通過用戶的iTunes賬號處理付費請求,給應用提供關(guān)于購買的信息。

Store Kit聚集在事務的金融方面,確保事務正確和安全。你的應用處理事務的其它方面,包括購買接口的呈現(xiàn)和適當內(nèi)容的下載(去鎖)。

工作的分工讓你能夠控制購買內(nèi)容的用戶體驗。由你決定你想呈現(xiàn)給用戶什么樣的購買接口和什么時候那樣做,你也決定你的應用最好的提交機制。

22)System Configuration Framework(系統(tǒng)配置框架)

SystemConfiguration 框架(SystemConfiguration.framework)提供可達性接口,你能用它來確定設(shè)備的網(wǎng)絡(luò)配置,也能使用該框架確定一個Wi-Fi或蜂窩連接是否在用以及一個特定的主機服務器是否能夠存取。

四Core OS Layer(核心OS層)

CoreOS層包含其它大多數(shù)技術(shù)建在其之上的低級別的功能。雖然應用不直接使用這些技術(shù),它們被其它框架使用。在需要顯而易見的處理安全或與外設(shè)通訊的情形,你也能使用該層提供的框架。

4.1? Core OS包含的框架:

1)Accelerate 加速框架

Accelerate框架 (Accelerate.framework)包含執(zhí)行數(shù)字信號處理、線性代數(shù)、圖像處理計算的接口。

使用該框架的優(yōu)點是它們針對所有的ios設(shè)備上存在的硬件配置做了優(yōu)化,因此你能寫一次代碼確保在所有設(shè)備上有效運行。

2)Core Bluetooth Framework(核心藍牙框架)

CoreBluetooth?框架 (CoreBluetooth.framework)允許開發(fā)者與藍牙低耗電外設(shè)(LE)交互。

使用該框架的Objective-C接口能夠完成如下工作:

1、掃描藍牙外設(shè),連接和斷開發(fā)現(xiàn)的藍牙外設(shè);

2、聲明應用的服務,轉(zhuǎn)換ios 設(shè)備成其它藍牙設(shè)備的外設(shè);

3、從IOS設(shè)備廣播iBeacon信息;

4、保存你的藍牙連接的狀態(tài),當應用重新啟動時恢復那些連接;

5、藍牙外設(shè)可獲得性變化時獲得通知。

3)External Accessory Framework(外部附件框架)

ExternalAccessory 框架(ExternalAccessory.framework)提供與連接到IOS設(shè)備的硬件附件通訊的支持。

附件能通過30-pin連接器或使用藍牙無線與IOS設(shè)備進行連接。該框架給你提供了獲得關(guān)于每一個可獲得的附件信息和啟動通訊會話的方式。然后,你可自由的使用附件支持的命令直接操作附件。

4)Generic Security Services Framework(通用安全服務框架)

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

5)Security Framework(安全框架)

除了內(nèi)建的安全功能,IOS也提供了一個明確的安全框架(Security.framework),你能用它來保證應用管理的數(shù)據(jù)的安全。

該框架提供管理證書、公有和私有key和信任策略的接口。支持產(chǎn)生加密安全偽隨機碼。它也支持在keychain(保存敏感用戶數(shù)據(jù)的安全倉庫)中保存證書和加密key。

公共加密庫提供對稱加密、hash認證編碼(HMACs)、數(shù)字簽名等額外支持,數(shù)字簽名功能本質(zhì)上與iOS上沒有的OpenSSL庫兼容。

在你創(chuàng)建的多個應用之間共享keychain是可能的。共享使它容易在相同的一套應用之間更平滑的協(xié)作。例如,你能使用該功能來共享用戶口令或其它元素,否則可能使每個應用都需要提示用戶。

為了在應用之間共享數(shù)據(jù),必須為每個應用的Xcode工程配置適當?shù)臋?quán)限。

6)System

System級包含kernel環(huán)境、驅(qū)動以及操作系統(tǒng)級別的unix接口。kernel本身負責操作系統(tǒng)的每一個方面:如虛擬內(nèi)存管理、線程、文件系統(tǒng)、網(wǎng)絡(luò)和互聯(lián)通信。在該層的驅(qū)動也提供在可獲得的硬件與系統(tǒng)框架之間的接口。為了安全,對kernel和驅(qū)動的存取被限制到一組有限的系統(tǒng)框架和應用。

IOS提供一組存取許多操作系統(tǒng)低級別功能的接口。應用通過LibSystem庫存取這些功能。該C based的接口提供如下功能的支持:

1) 多任務(POSIX線程和GCD)

2) 網(wǎng)絡(luò)(BSDsockets)

3) 文件系統(tǒng)存取

4) 標準I/O

5) Bonjour和DNS服務

6)? 位置信息

7) ?內(nèi)存分配

8) 數(shù)學計算

7) 64-Bit Support

IOS原先是為32-bit架構(gòu)的設(shè)備設(shè)計的。自iOS 7,開始支持在64-bit進行編譯、鏈接和調(diào)試。所有的系統(tǒng)庫和框架是支持64位的,意味著它們能在32-bit和64-bit應用中使用。當以64-bit運行時編譯時,應用可能運行的更快,因為在64-bit模式可以獲得額外的處理器資源。

iOS使用OS X和其它64-bitUNIX系統(tǒng)使用的LP64模式,意味著在這些系統(tǒng)移植時不會碰到太頭疼的事。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容