




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、概述ios是運行于iphone、ipod touch以及ipad設備的操作系統,它管理設備硬件并為手 機木地應用程序的實現提供基礎技術。根據設備不同,操作系統具有不同的系統應用程序, 例如phone、mail以及safari,這些應用程序可以為用戶提供標準系統服務。iphone sdk包含開發、安裝及運行本地應用程序所需的工具和接口。本地應用程序使 用ios系統框架和objective語言進行構建,并且在接運行于ios設備。它與web應用 程序不同,一是它位于所安裝的設備上,二是不管是否有網絡連接它都能運行。可以說本地 應用程序和其他系統應用程序具有相同地位。木地應用程序和用戶數據都可以通
2、過itunes 同步到用戶讓算機。ios架構ios架構和mac os的基礎架構相似。站在高級層次來看,ios扮演底層硬件和應用 程序(顯示在屏幕上的應用程序)的中介。如圖所示。您創建的應用程序不能直接訪問 硬件,而需要和系統接口進行交互。圖1-1應用程序位于ios上層(請注意:雖然應用程序通常會和底層硬件隔離,但是應用程序代碼仍需考慮設備之間的 某些差界。舉個例子,ipad和ipod touch不能打開包含電話號碼的url但是iphone則可 以。)系統接口轉而乂去和適當的驅動打交道。這樣的抽象可以防止您的應用程序改變底層硬 件。您創建的應用程序不能肓接訪問硬件,而需要和系統接口進行交互。系統
3、接口轉而又去 和適當的驅動打交道。這樣的抽象可以防止您的應用程序改變底層硬件。ios實現可以看作 是多個層的集合("game kit框架”含有對這些層的介紹),底層為所有應用程序捉供基礎服 務,高層則包含一些復雜巧妙的服務和技術。圖1-2 ios的層在編寫代碼的時候,應該盡可能地使用高層框架,而不要使用底層框架。高層框架為底 層構造提供血向對象的抽象。這些抽象可以減少需編寫的代碼行數,同時還對諸如socket 和線程這些復雜功能進行封裝,從而讓編寫代碼變得更加容易。雖說高層框架是對底層構造 進行抽象,但是它并沒有把底層技術屏蔽起來。如果高層框架沒有為底層框架的某些功能提 供接口,開發
4、者可以直接使用底層框架。本文檔后續章節將對每一層所包含的技術和框架進 行描述。iphone sdk包含哪些東西?在使用intel芯片的macintosh計算機開發ios應用程序所需的全部接口、工具以及資 源全都包含于iphone sdko蘋果公司將大部分系統接口發布在框架這種特殊的數據包。一 個框架就是一個目錄,它包含一個動態共享庫以及使用這個庫所需的資源(例如頭文件、圖 像以及幫助應用程序等)。如果要使用某個框架,則需耍將其鏈接到應用程序丄程,這一點 和使用其他共享庫相似。另外,您還需要告知開發工具何處可以找到框架頭文件以及其他資 源。除了使用框架,蘋果公司還通過標準共亨庫的形式來發布某些技
5、術。由于ios以unix 為棊礎,操作系統底層的許多技術都源口開源技術,這些技術的許多接口可以從標準庫和接 口目錄訪問。sdk中述包含下述重耍組件:xcode i具提供ios應用程序開發工具,包括如下關鍵應用程序:xcode 是一個集成開發環境,它負責管理應用程序工程。您可以通過它來編輯、編譯、運 行以及調試代碼。xcode還集成了許多其他工具,它是開發過程屮使用到的主要應用程序。 interface builder 以ht視化方式組裝用戶接口的丄具。通過interface builder創建出來的 接口對象將會保存到某種特定格式的資源文件,并且在運行時加載到應用程序。instruments運
6、行吋性能分析和調試工貝。您町以通過instruments收集應用程序運行吋 的行為信息,并利用這些信息來確認可能存在的問題。iphone模擬器是mac osx平臺應用程序,它對ios技術棧進行模擬,以便于您町以在 基于intel的macintosh計算機上測試ios應用程序。ios參考庫sdk默認包含ios的參考文檔。另外,如果文檔庫有更新,則更新會被口動 下載到木地。二、coccocoa touch 層cocoa touch層包含創建ios應用程序所需的關鍵框架。上至實現應用程序可視界曲, 卜-至與高級系統服務交互,都需要該層技術提供底層基礎。在開發應用程序的時候,請盡可 能不要使用更底層的
7、框架,盡可能使用該層的框架。高級特性卜而章節描述一些常見特性,也許您也正打算在應用程序支持這些特性。 多任務如果應用程序構建于iphone sdk 4.0及其后續版本(且運行于ios 4.0及后續版本操作 系統),則點擊home鍵的時候,應用程序不會結束,而是切換到后臺。対于大多數應用程 序來說,進入后臺,它們就會進入掛起狀態。讓應用程序駐留在后臺可以避免以后的重新啟 動過程,應用程序可以直接將自己激活,這在很大程度上改善了整體用八體驗。另外,將應 用程序掛起也可以改善系統性能,因為掛起應用程序可以最小化電能使用,并可讓前臺應用 程序獲得更多的執行時間。盡管應用程序進入后臺就會被掛起,但可以通
8、過下述的技術讓其 在示臺繼續運行:/ 應用程序可以請求一定的時間完成某些重要的任務。/應用程序可以聲明自身支持的某種服務需要獲得定期后臺執行吋間。/ 應用程序可以使用本地通告在指定時間向用八發通知。這種方式對于應用程序是否運行 沒有要求。不管應用程序是被掛起還是在后臺運行,支持多任務不需要付出額外的工作。但是在某 些情況(例如內存不足)卜,應用程序可能會被結束運行。因此,應用程序應該可以在任何 時候退出。這就意味著許多在退出應川程序時需要執行的任務必須改為在應川程序切換到后 臺的時候執行。這就要求您在應用程序委托中實現一些新的方法以響應程序的狀態切換。數據保護和敏感用戶數據打交道的應用程序對以
9、使用設備內建加密功能(有些設備可能不提供內 建加密功能)對數據進行保護。如果應用程序指定某個文件受保護,系統會以加密格式將該 文件保存在磁盤。當設備鎖住的吋候,您的應用程序以及其他潛在的闖入者都不能訪問該文 件,而當用戶解鎖設備后,系統會半成一份密鑰以便您的應用程序就訪問該文件。如需實現數據保護,應用程序應在待保護數據的創建和管理方式下一些功夫。它必須能 夠在數據創建之時保證其安全,而且需要適配設備上鎖或未上鎖造成的文件可訪問性的變 化。蘋果推送通知服務ios 3.0及后續版木的系統中,不管應用程序是否運行,蘋果推送通知服務可用于通知 用戶某個應用程序具有新信息。利用這項服務,您可以向系統推送
10、文木通知,可以觸發聲音 提醒或者在應用程序圖標上添加一個數字化標記c這樣用八就知道他們應該打開應用程序接 收相關信息。從設計角度看,讓應用程序支持推送通知包含兩個部分。酋先,ios應川程序 需要請求系統向其發送通知,然后要合理配置應用程序委托使其可以對通知進行恰當處理。 這些工作可以通過應用程序委托以及ulapplication對象合作完成。第二,您盂要提供一個 服務器端進程用于產生最初的通知。該進程運行在您白己的本地服務器,它和蘋果推送通知 服務協同工作以產生最初的通知。本地通知ios 4.0引入了本地通知。本地通知是対已有推送通知的補充,通用程序可以通過它在 木地生成通知,不再需要依賴外部
11、服務器。當冇垂要的事件發生時,后臺應川程序可以利川 本地通知獲得用八關注。舉個例子,運行于后臺的導航應用程序可以使用本地通知捉醒用八 要轉彎。應用程序也可以安排在未來的某個時刻向用戶發送本地通知,而fl發送這些通知并 不要求應用程序處于運行狀態。本地通知的優點是它獨立節您的應用程序。一旦某個通知被 安排好后,系統會負責通知發送。而在發送通知的時候,您的應川程序無需處于運行狀態。手勢識別器ios 3.2引入了手勢識別器。手勢識別器是一個綁定到視圖的對象,用于檢測常見的手 勢類型。將手勢識別器綁定到視圖后,您可以告訴它某個手勢發生的時候執行何種動作。z 后,手勢識別器就可以對原始事件進行跟蹤,根據
12、系統定義的試探方式識別手勢。在引入手 勢識別器前,如果要識別一個手勢,您需要跟蹤視圖的原始觸摸事件流,然后再使用復雜的 試探方法來判斷這些事件是否表示某種手勢。現在,ulkit松架中包含一個uigesturerecognizer類,它定義了所有手勢識別器的 基木行為。您可以使用白定義的手勢識別器子類或者系統定義的某個子類處理下面這些標準 手勢:>拍擊(任意次數的拍擊)> 向里或向外捏(用于縮放)> 搖動或者拖拽> 擦碰(以任意方向)>旋轉(手指朝相反方向移動)> 長按文件共享支持應用程序可以使用文件共享讓用戶訪問程序的用戶數據文件。文件共享允許應用程序通 過
13、itunes向用戶顯鉤應用程序/documents冃錄的內容。這樣,用八就可以在ipad和桌|僑 計算機來冋移動文件。但是,該功能不允許應用程序和同-設備上的其他應用程序共亨文件。 如果希望在程序間共享文件,請使用剪貼板或者文檔交互控制器對彖。您可以通過如下步驟來讓應用程序支持文件共亨:/ 在應用程序的info.plist文件中添加ulfilesharingenabled鍵,并將鍵值設置為yes。 / 將您希望共厚的文件放在應用程序的documents忖錄。/ 一旦設備插入到用戶計算機,itunes 9.1就會在選中設備的apps標簽中顯示一個file sharing 區域。此示,用戶就可以向
14、該目錄添加文件或者將文件移動到桌血計算機屮。如果應用程序支持文件共厚,當文件添加到documents h錄后,應用程序應該能夠識 別并做出適當響應。例如說,應用程序可以將新文件的內容顯示界面上。請不要向用戶展現 冃錄的文件列表并詢問他們希望對文件執行什么操作。點對點服務在ios3.0及后續版本,game kit框架支持經由藍牙進行點對點連接。您可以使用點 對點連接啟動與某個鄰近設備的通訊會話,也可用它實現多種多玩家游戲的常見特性。雖然 點對點連接主要應用于游戲,但您也可將z應用于其他類型應用程序。標準系統視圖控制器cocoa touch層許多框架含有展現標準系統界面的視圖控制器。我們提倡您在應
15、用程 序中使用這些視圖控制器,這樣可以讓您的程序和系統具有一致的用戶體驗。如果您需耍執 行卜述任務,請從相應的框架屮選擇一個視圖控制器使用:顯示或者編輯聯系人信息請使用address book ui框架中的視圖控制器。創建或者編輯日歷事件請使用event kit ui fr;架的視圖控制器。創建email或者sms消息請使用message ui框架中的視圖控制器。打開或者預覽一份文件的內容 請使用 ulkit框架中的 uidocumentinteractioncontroller 類。從用戶的照片庫選取一張照片請使用ulkit松架中的uilmagepickercontroller 類。拍攝視頻
16、片段-請使用ulkit框架中的uilmagepickercont roll er類。 外部設備支持安裝ios 3.2的設備可通過一纟r設備支持的線纜連接一個外部顯示設備。當外部設備 連上后,應用程序就可以使用其顯示屛顯示內容。屏幕的信息,包括屏幕能夠支持的分辨率 都可通過ulkit框架的接口獲取。您也可以通過該框架將應用程序窗i i關聯到某個屏幕。ulscreen類用于獲取當前所有屏幕(包括設備主屏幕)的屏幕對象。屏幕對象包含屏幕的 屬性信息(包括將屏幕的尺寸和像索比例也考慮在內的屏幕特征)。您可以從ulscreenmode 類獲得某個具有特定尺寸像素比例的屏幕的信息。您可以將窗口(使用ulw
17、indow類來表示) 指定到某個特定的屏幕。如果您需要對內容作鏡像顯示,則需要提供兩個獨立的窗口,然后 再在其屮顯示相同內容。cocoa touch層包含的框架下面部分描述cocoa touch層包含的框架以及這些框架提供的服務。address book ui 框架address book ui 框架(addressbooklli.framework)是一套 objectivec 的編程接口, 可以顯示創建或者編輯聯系人的標準系統界面。該框架簡化了應用程序顯示聯系人信息所需 的工作,另外它也可以確保應用程序使用的界曲和其他應用程序相同,進而保證跨平臺一致 性。event kit ui 框架io
18、s 4.0引入了 event kit ui框架(eventkitul.framework),它提供一個視圖控制鍵可 以展現查看并編輯事件的標準系統界面。event kit框架(查看“event kit框架獲得該框 架的進一步信息)的事件數據是該框架的構建基礎。game kit 框架ios 3.0引入了 game kit框架(gamekit.framework)o該框架支持點對點連接及游戲內 語音功能,您可以通過該框架為應用程序增加點對點網絡功能。點對點連接以及游戲內語音 功能在多玩家的游戲中非常普遍,不過您也可以考慮將:其加入到非游戲應川程序。此框架通 過一組建構于bonjour z上的簡單1
19、佃強大的類提供網絡功能,這些類將許多網絡細節抽彖出 來,從而讓沒冇網絡編程經驗的開發者可以更加容易地將網絡功能整合到應用程序。iad框架ios 4.0引入了 iad框架(iad.framework)o您可以通過該框架在應丿ij程序中發布橫幅廣 告。廣告會被放入到標準視圖,您可以將這些視圖加入到川戶界面,并在合適的時機向川戶 展現。這些視圖和蘋果的公告服務相互協作,自動處理廣告內容的加載和展現,同時也可以 響應用戶對廣告的點擊。map kit框架ios 3.0導入了 map kit框架(mapkit.framework),該框架提供一個可被嵌入到應川 程序的地圖界而,該界而包含一個可以滾動的地圖
20、視圖。您可以在視圖屮添加定制信息,并 可將其嵌入到應用程序視圖,通過編程的方式設置地圖的各種屬性(包括當前地圖顯示的區 域以及用戶的方位)。您也可以使用定制標注或標準標注(例如使用測針標記)突出顯示地 圖中的某些區域或額外的信息。在ios4.0系統屮,該框架開始支持可拖動標注以及定制覆蓋層。可拖動標注允許您通 過編程方式或通過用戶交互方式重定位某個標注的位置。覆蓋層可用于創建多個點組成的復 雜地圖標注。地圖表面諸如公交路線、選舉地圖、公園邊界或者氣象信息(例如雷達數據) 等可以使用覆蓋層進行顯示。message ui 框架ios 3.0引入了 message ui框架(messageul.fr
21、amework)。您可以利用該框架撰寫電 子郵件,并將其放入到用戶的發件箱排隊等候發送。該框架提供一個視圖控制器界而,您可 以在應川程序中展現該界面,讓丿ij戶通過該界面撰寫郵件。界面的字段可以根據待發送信息 的內容主成。例如您可以設直接收人、主題、郵件內容并可以在郵件屮包含附件。這個界面 允許用八先對郵件進行編輯,然后再選擇接受。在用八接受郵件內容后,相應的郵件就會放 入用戶的發件箱排隊等候發送。在ios 4.0及其后續的系統中,該框架提供一個sms撰寫血板控制器。您可以通過它 在應用程序中直接創建并編輯sms信息(無需離開應川程序)。和電子郵件撰寫界面一樣, 該界而也允許用戶先編輯sms信
22、息再發送。ulkit框架ulkit框架(ulkit.framework)的objective-c編程接口為實現ios應用程序的圖形及事 件驅動提供關鍵革礎。ios系統所冇程序都盂要通過該框架實現下述核心功能:應用程序管理用戶界面管理 圖形和窗口支持 多任務支持 處理觸摸及移動事件。代表標準系統視圖和控件的對象文木和web內容相關操作剪切、復制以及粘貼使用動畫顯示用戶界面內容通過url方式將其他應用程序整合到系統蘋果推送通知服務支持,請查看“蘋果推送通知服務"為殘疾用戶提供輔助功能 本地通知的調度和發送 創建pdf使用定制輸入視圖(其行為類似系統鍵盤) 創建和系統鍵盤進行交互的定制文本
23、視圖 除了鏈編至應用程序的基礎代碼,ulkit還為卜述和設備緊密相連的功能提供支持: 加速器數據內置相機(存在相機的設備)用戶的圖片庫設備名稱和模型信息電池狀態信息 距離感應器信息 來白綁定聽筒的遠程控制信息三、媒體層 媒體層媒體層包含圖形技術、音頻技術和視頻技術,這些技術相互結合就可為移動設備帶來最 好的多媒體體驗,更重要的是,它們讓創建外觀咅效俱佳的應用程序變得更加容易。您可以 使川ios的高級框架更快速地創建高級的圖形和動畫,也可以通過底層框架訪問必要的工 具,從而以某種特定的方式完成某種任務。圖形技術高質量的圖形是ios應用程序的重要組成部分。創建應用程序最簡單最有效的方法是 使用事先
24、演染過的圖片,搭配上標準視圖以及ulkit框架的控件,然后把繪制任務交給系統 來執行。但是在某些情況卜,您可能需耍一些ulkit所不具有的功能,而且需要定制某些行 為。在這種情況下,您可以使用下述技術管理應用程序的圖形內容: core graphics (也被稱為quartz),用于處理本地2d向量漬染和圖片渲染。 core animation ( quartz core框架的一部分),為動畫視圖和其他內容提供更高級別支 持。 opengl es,為使用硬件加速接口的2d和3d渲染提供支持。 core text,提供一個精密的文本布局和浪染引擎。 image i/o,捉供讀取及編寫大多數圖形格
25、式的接口。 資產庫椎架(assets library framework),可用于訪問用戶照片庫屮的照片和視頻。人多數應用程序應該無需改動,或者只需做很少修改,便可運行在具備高分辨率屏幕的 設備。因為在繪圖或者操作視圖的時候,您所指定的座標值會被映射到邏輯朋標系統,它和 底層屏幕分辨率沒有關聯。而且繪制的內容會自動根據需要按比例縮放,以此來支持高分辨 率屏幕。對基于向量進行繪制的代碼來說,系統框架會自動使川額外的像索來改善圖畫的內 容,使其變得更清晰。如來應用程序中使用了圖片,則可以利用ulkit自動加載現有圖片的 高分辨率版本。音頻技術ios咅頻技術可幫助您為川戶捉供豐富多彩的咅響體驗。您可
26、以使川咅頻技術來播放或 錄制高質量的音頻,也可以用于觸發發設備的震動功能(具有震動功能的設備)。ios系統提供數種播放或錄制音頻的方式供您選用。在選擇音頻技術的時候,請記住,要盡 可能地選取高級框架,因為它們可以簡化播放音頻所需的工作。下血列出的框架從高級到低 級排列,媒體播放器框架(mediaplayer framwork)提供的是最高級的接口: 媒體播放器框架:該框架可以讓訪問用戶的itume庫變得很容易,并且支持播放曲目和 播放列農。 av foundation框架:它提供一組簡單易用的objectives接口,可用于管理音頻的播放 或錄制。 openal框架:它提供一組跨平臺,用于發布
27、方位音頻的接口。 core audio框架:它捉供的接口簡單而榕密,可用于播放或錄制音頻內容。您可以使用 這些接口播放系統的警報聲音、觸發備的震動功能、管理多聲道的緩沖和播放、對音頻 內容進行流化處理。ios音頻技術支持下述音頻格式:aacapple lossless (alac)a-lawima/adpcm (ima4)linear pcmp-lawdvi/lntel imaadpcmmicrosoft gsm 6.10aes3-2003視頻技術ios有數種技術可用于播放應用程序包的電影文件以及來自網絡的數據流內容。如果設 備具冇介適的視頻駛件,這些技術也可用于捕捉視頻,并可將捕獲到的視頻集
28、成到應用程序。 系統提供也提供多種方法用于播放或錄制視頻內容,您可以根據需要選擇。選擇視頻技術的 時候,請盡可能選擇高級框架,因為高級框架口 j以簡化為捉供對某種功能的支持所需的工作。 卜面列出的框架由高級到低級排列。具屮,媒體播放器框架提供最高級的接口:媒體播放器框架,它提供一組易于使用的接口,可用于播放應用程序中全屏或部分屏的電影。 av foundation框架,它提供一組objective-c接口,可以對電影的捕捉和播放進行管理。 core media框架,它対較高級框架使用的底層類型進行描述,同時也提供一些底層接口, 它們用于對媒體進行處理。ios視頻技術支持播放的電影文件應具有,m
29、ov. .mp4> .m4v以 及.3gp文件擴展名,而且文件應使用下述的壓縮標準:h.264視頻,多達 1.5 mbps, 640x480像素,每秒30幀。h.264 baseline profile 的 low-complexity版本支持aac-lc音頻(.m4v .mp4以及.mov文件格式中高達 160kbps ,48khz的立休音頻)。h.264視頻,高達68 kbps, 320x240像素,每秒30幀。達到 level 1.3的 baseline profile 支持aac-lc音頻(.m4v、.mp4以及.mov文件格式中高達160kbps ,48khz的立體音頻)。 m
30、peg-4視頻,高達 2.5 mbps, 640 x 480像素,每秒30幀。simple profile 支持 aac-lc 咅頻(m4v、.mp4以及.mov文件格式中高達160kbps ,48khz的立體音頻)。各種音頻格式,包括“音頻技術”列出的清單。媒體層包含的框架后續部分対媒體層的框架和框架所提供的服務進行說明。資產庫框架ios4.0引入了資產庫框架(assetslibrary.framework),該框架提供一個杏詢界血;您可 以通過它查找用戶照片和數據。通過使用該框架,您可以訪問photos管理的資產,包括用 戶保存的相冊以及導入到設備屮的圖片或視頻。而且您也可以將照片或者視頻
31、保存到用戶的 相冊。av foundation 框架ios 22引入了 av foundation 框架(avfoundation.framework),該框架包含的 objective-c類可用于播放音頻內容。通過使用該框架,您可以播放聲音文件或播放內存中 的音頻數據,也可以同時播放多個聲音,并対各個聲音的播放特定進行控制。在ios 4.0 及示續版木屮,該框架提供的服務得到很人的擴展,下述的服務現在也包含在框架屮: 媒體資產管理 媒體編輯 電影捕捉 電影播放 曲目管理 媒體項的元數據管理 立體聲淘選 不i訶聲音的精確同步用于判斷聲音文件詳細信息的objective-c接口,例如判斷數據格式
32、、采樣率和聲道數。 av foundation框架是ios小錄制播放音頻和視頻的唯一框架,該框架還支持對媒體項進行 管理和處理。core audio表31列出來的core audio框架家族為音頻提供木地支持。core audio框架提供c語 言接口,可用于操作立體聲音頻。通過ios系統coreaudio框架,您可以在應用程序小生成、錄制、混合或播放音頻,您也口j通過該框架訪問設備的震動功能(支持震動功能的設備)。表 3-1 core audio架框架服務audiotdolbox.framewo rk播放或錄制音頻文件或數據流,也町用于管理音頻文件、播放系統警告聲音、觸 發某些設備的震動功能。
33、coreaudio.framework定義core audio框架家族使用的音頻數據類型。audioll nit.framework為內置音頻單元服務,內置音頻單元是指音頻處理模塊。core graphics 框架core graphics 框架(coregraphics.framework)包含 quartz 2d 繪圖 api 接口 oquartz 是mac osx系統使用的向量繪圖引擎,它支持基于路徑繪圖、抗鋸齒渲染、漸變、圖片、 顏色、坐標空間轉換、pdf文件的創建、顯示和解析。雖然api基于c語言,但是它使用 基于対象的抽象以表示基本繪圖対象,這樣可以讓開發者可以更方便地保存并復用圖
34、像內 容。core text 框架ios 3.2引入了 core text框架(coretext.framework),該框架包含一組簡單高效的c接 口,可用于對文本進行布局以及對字體進行處理。core text fr;架提供一個完整的文本布局 引擎,您對以通過它管理文本在屏幕上的擺放。所管理的文本也町以使用不同的字體和渲染 屬性。該框架專為諸如字處理程序這類需要具有精密文本處理功能的應用程序而設計。如果 您的應用程序只需要一種文本輸入和顯示,則應使用ulkit框架中已有的類。core video 框架ios 4.0引入了 core video 框架(corevideo.framework),
35、該松架為 core media 提 供緩存和緩存池的支持。大多數應用程序都不應該直接使用該框架。image i/o框架 ios4.0引入image i/o框架(imagelo.framework),該框架的接口可用于導入或導出圖像 數據及圖像元數據。該框架建構于core graphics數據類型和函數z上,能夠支持ios上所有的標準圖像類型。媒體播放器框架媒體播放器椎架(mediaplayer.framework)為應用程序播放視頻和音頻內容提供高級 支持。通過該框架,您就對以使用標準系統界面播放視頻。ios 3.0增加了對訪問用戶itune 庫的支持。因此,您可以利用該框架播放音樂illi目
36、、播放列表、搜索歌1111并向用戶顯示媒體 選取界面。在ios 3.2系統中,該框架發生了變化,開始支持在可改變尺寸的視圖中播放視 頻(之前只支持全屏)。另外還新增數個界面用于支持配置和管理電影播放。openal框架除了 core audio z夕卜,ios 還支持 open audio library (openal) openal 接口是 在應用程序中發布方位音頻的跨平臺標準。通過使用該框架,您可以在游戲或者要求有方位 咅頻輸出的程序中實現高性能、高質量的咅頻。openal是跨平臺的標準,ios平臺使川 openal編寫的代碼模塊可以移植到許多具他的平臺運行。opengl es 框架ope
37、ngl es框架(opengles.framework)提供的工具可用于繪制2d及3d內容。該框 架基于c語言,能夠和設備碩件緊密協作,為全屏游戲類型的應用程序提供很高的幀速率。 opengl框架需要和eagl接口結合使用。這些接口是opengl es框架的一部分,它們 是opengl es繪圖代碼及應用程序中的窗口對象的接口。在ios 3.0及其后續版本的系統 屮,opengl es框架同時支持opengl es 2.0及opengles1.1接口規范。20規范支 持分段和點著色,只有運行ios 3.0及其后續版本的設備才支持2.0。所有版本的ios及ios 設備都支持opengl es 1
38、.1規范。quartz core 框架quartz core 框架(quartzcore.framework)包含 core animation 接 口。core animation是高級動畫制作和混合技術,它使川經過優化的渲染路徑實現復雜的動畫和視覺 效果。它提供的高級objective接口對對動畫效杲進行配置,然后在設備硬件中進行渲染, 以此來提高程序的性能。core animation框架被整合到ios的許多部分(包括ulkit框架屮 的許多類(如ulview),可以為多種系統行為提供動畫效果。您也可以便用該框架中的 objective-c接口直接創建定制動畫。四、core servic
39、es 層core services層為所冇的應用程序提供基礎系統服務。可能應用程序并不直接使用這 些服務,但它們是系統很多部分賴以建構的基礎。高階特性下而的部分描述一些比較常見特性,也許您正打算讓您的應用程序支持這些特性。 塊對象ios 4.0引入了塊對象。塊対象是c級別的構造,您可以在c或objective-c代碼中使 川快對彖。從木質上說,塊對彖木質上是一個匿名函數加上該函數的伴隨數據。冇些時候, 其他語言也稱塊對象為closure或者lambda。塊對象非常適用于回調函數。如果您需要有 很便捷的方法將執行代碼和相關數據組合在一起,塊對象也是很好的選擇。在ios系統屮,塊對象通常用于下述場
40、合: 作為委托或委托方法的替代品。 作為冋調函數的替代品。 用于實現一次性操作的完成處理器。 簡化在群體所有子項上迭代執行某種任務的操作。 配合分發隊列。可用于執行異步任務。grand central dispatchios 4.0引入了 grand central dispatch (gcd),它是bsd級別的技術,可用于在應用 程序內管理多個任務的執行。gcd技術將界步編程模型和高度優化內核結合在一起,可作 為多線程的便捷(11更高效)替代。同吋,它也為許多種底層任務(例如讀寫文件描述符、 實現定時器、監視信號和處理事件等)提供替代方案。應用程序內購買(in app purchase)io
41、s 3.0引入了應用程序內購買功能。通過該功能,您可以在應用程序內出售內容或服 務。該功能使用store kit框架來實現,它可以為使用itunes賬戶進行的財務交易的處理提 供基礎支持,應用程序只需處理用戶體驗及待售內容或服務的展現。定位服務應用程序可使用core location fr:架提供的接口追蹤用八位置。此框架利用當前可用的 硬件無線電波(包括wi-fi.蜂窩無線或者gps)定位用戶的當前位置。應用程序可以對框 架提供的信息進行裁剪,然后再將其發送給客八,或是用于實現某些特定功能。舉個例子, 社交應用程序允許您找到附近其他應用程序用戶,然后再與z進行通訊。sqlitesqlite庫
42、允許開發者將一個輕量級sql數據庫嵌入到應用程序,而且開發者不需要運 行獨立的遠程數據庫服務器進程。在此之麻,開發者可以在應用程序屮創建本地數據庫文件, 管理文件屮的表和記錄。雖然sqlite數據庫出于通用口的而設計,但它還是針對數據庫記 錄的快速訪問做過優化。用于訪問 sqlite庫的頭文件位于 <ios_sdk>/usr/include/sqlite3.ho 在該路徑小,<ios_sdk>是 xcode 安裝目錄屮目標 sdk函路徑。如果需要更多如何使用sqlite的信息,請訪問網站。xml支持foundation fr:架支
43、持使用nsxmlparser類從xml文檔中解析元素,而libxml2庫則 為操作xml內容提供支持。libxml2庫是開源的,它可以讓您快速地解析或寫入任意的 xml數據,也可將xml內容轉化為html文件。用于訪問libxml2庫的頭文件位于 <ios_sdk>/usr/include/libxml2/o 在該路徑中,vios_sdk>是 xcode 安裝 fl 錄中冃標 sdk的路徑。如要更多libxml2的使用信息,詰訪問/index.htm網站。core services 框架下述部分描述core services層的框架以及這些框
44、架提供的服務。address book 框架address book框架(addressbook.framework)支持編程訪問存儲于用八設備屮的聯系 人信息。如果應用程序使用到聯系人信息,則可通過該框架訪問并修改用戶聯系人數據庫的 記錄。舉個例了,通過使用該框架,聊天程序可以獲取一個聯系人列表,利川此列表初始化 聊天會話,并在聯系人視圖顯示列表的聯系人。cfnetwork 框架cfnetwork框架(cfnetwork.framework)提供一組高性能基于c語言的接口,它們為 使用網絡協議捉供面向對象抽象。通過這些抽象,您可以對協議棧進行更精細的控制,而且 可以使用諸如bsd socke
45、t這類底層結構。您也可以通過該框架簡化諸如與ftp或http 服務器通訊以及dns主機解析這類任務。下而列舉一些可以使用cfnetwork框架執行的 任務:使用 bsd sockets 使用ssl或tls創建加密連接 解析dns主機 使用http,校驗http以及https服務器。 使用ftp服務器 發布、解析并瀏覽bonjour服務。core data 框架ios 3.0引入 core data he架(coredata.framework) o core data 框架是一種管理模型. 視圖控制器應用程序數據模型的技術,它適用于數據模型已經高度結構化的應用程序。通 過此框架,您再也不需要通
46、過編程定義數據結構,而是通過xcode提供的圖形工具構造一 份代表數據模型的圖表。在程序運行的時候,core data框架就會創建并管理數據模型的實 例,同時還對外提供數據模型訪問接口。通過core data管理應用程序的數據模型,可以極 大程度減少需編寫的代碼數量。除此之外,core data還具有下述特征: 將對象數據存儲在sqlite數據庫以獲得性能優化。 提供nsfetchedresultscontroller類用于管理表視圖的數據。 管理undo/redo操作。屬性值校驗支持。 支持對數據變化進行傳播,并且不會改變對象間的關聯。 支持對數據進行歸類,過濾,并支持對內存數據進行管理。如
47、果您正在開發新應用程序或打算對某個現有的程序進行大幅度更新,請考慮使用 core data。core foundation 框架core foundation 框架(corefoundation.framework)是一組 c 語言接口,它們為 ios 應用程序提供基本數據管理和服務功能。卜面列舉該框架支持進行管理的數據以及町提供的 服務:群體數據類型(數組、集合等)程序包字符串管理 li期和時間管理原始數據塊管理偏好管理 url及數據流操作 線程和runloop端口和soket通訊core foundation框架和foundation框架緊密相關,它們為相同功能提供接11,但 founda
48、tion 框架提供 objective-c 接口。如果您將 foundation 對象和 core foundation 類 型摻雜使用,則可利用兩個框架之間的“toll-free bridging"。所謂的toll-free bridging是說 您可以在某個框架的方法或函數同時使用core foundatio和foundation框架小的某些類 型。很多數據類型支持這一特性,其中包括群體和字符串數據類型。每個框架的類和類型描 述都會對某個對象是否為toll-free bridged,應和什么對象橋接進行說明。core location 框架core location 架(core
49、location.framework)可用于定位某個設備當前經緯度。它可 以利用設備貝備的硬件,通過附近的gps、蜂窩基站或者wifi信號等信息計算用八方位。 maps應用程序就是利用此功能在地圖上顯示用戶當前位置。您可以將此技術結合到應川程 序,以此向用八提供方位信息。例如,應用程序可根據用八當前位置搜索附近飯店、商丿占或 其他設施。在ios 3.0系統中,該框架開始支持訪問ios設備(具冇相應硬件的設備)的 方向信息。在ios4.0系統中,該框架開始支持低能耗的方位監視服務,該服務利用蜂窩基 站跟蹤用戶方位。core media 框架ios 4.0引入了 core media 框架(cor
50、emedia.framework) o 此框架提供 av foundation 框架使用的底層媒體類型。只有少數需要對音頻或視頻創建及展示進行精確控制的應用程序 才會涉及該框架,其他大部分應用程序應該都用不上。core telephony 框架ios 4.0引入了 core telephony 框架(coretelephony.framework)此框架為訪問具有 蜂窩無線的設備上的電話信息提供接口,應用程序可通過它獲取用八蜂窩無線服務的捉供商 信息。如果應用程序對于電話呼叫感興趣,也可以在相應事件發生時得到通知。event kit 框架ios 4.0引入了 event kit框架(event
51、kit.framework)。此框架為訪問用戶設備的日歷事 件提供接口。您可以通過該框架訪問用戶h歷小現有事件,可以增加新事件。h歷事件可包 含鬧鈴,而且可以配置鬧鈴激活規則。foundation 框架foundation 林e架(foundation.framework)為 core foundation 框架的許多功能提供 objective-c封裝。您可以參考core foundation框架了解前面對core foundation框架的 描述。foundation框架為下述功能提供支持: 群體數據類型(數組、集合等) 程序包 字符串管理h期和時間管理 原始數據塊管理 偏好管理url及數
52、據流操作線程和runloopbonjour通訊端口管理 國際化 正則表達式匹配 緩存支持mobile core services 框架ios 3.0引入了 mobile core services 框架(mobilecoreservices.framework)此框架 定義統一類型標識符(utis)使用的底層類型。quick look 框架ios 4.0引入quick look框架(quicklook.framework),應川程序可以川過該框架預覽 無法直接支持查看的文件內容。如果應用程序從網絡下載文件或者需處理來源未知的文件, 則非常適介使用此框架。因為應用程序只要在獲得文件后,調用框架提
53、供的視圖控制器就可 以直接在界面中顯示文件的內容。store kit 框架ios 3.0引入store kit框架(storekit.framework),此框架為ios應用程序內購買內容或 服務提供支持。例如,開發者可以利用此框架允許用戶解鎖應用程序的額外功能。或者假設 您是一名游戲開發人員,則可使用此特性向玩家出售附加游戲級別。在上述的兩種情況中, store kit框架會處于交易過程屮和財務相關的事件,包括處理用戶通過itunes store賬號 發出的支付請求并且向應用程序提供交易相關信息ostore kit框架主要關注交易過程屮和財 務相關的事務,目的是為了確保交易安全準確。應用程序
54、需要處理交易事物的其他因素,包 括購買界面和下載(或者解鎖)恰當的內容。通過這種任務劃分方式,您就擁有購買內容的 控制權,對以決定希望展示給用戶的購買界而以及何時向用戶展示這些界面,同時也可以決 定和應用程序最匹配的交付機制。system con figuration 框架system configuration 框架(systemconfiguration.framework) nj'用于確定設備的網絡 配置。您町以使用該框架判斷wi-fi或者蜂'禽連接是否正在使用中,也町以用于判斷某個主 機服務是否可以使用。五、core os 層core os層的底層功能是很多其他技術的構
55、建基礎。通常情況下,這些功能不會直接 應用于應用程序,而是應用于其他框架。但是,在直接處理安全事務或和某個外設通訊的時 候,則必須要應用到該層的框架。accelerate 框架ios 4.0引入了 accelerate框架(acceleratedramework)該框架的接口町用于執行數 學、人數字以及dsp運算。和開發者個人編寫的庫相比,該框架的優點在于它根據現存的 各種ios設備的片更件配置進行過優化。因此,您只需一次編碼就可確保它在所有設備高效 運行。external accessory 框架ios 3.0引入了 external accessory 框架(externalaccesso
56、ry.framework),通過它來支 持ios設備與綁定附件通信。附件町以通過一個30針的基朋接口和設備相連,也可通過藍 分連接。通過external accessory框架,您可以獲得每個外設的信息并初始化一個通訊會話。 通訊會話初始化完成z后,您可以使用設備支持的命令直接對其進行操作。security 框架ios系統不但提供內建的安全功能,還提供security框架(security.framework)用于 保證應用程序所管理之數據的安全。該框架捉供的接口可用于管理證書、公鑰、私鑰以及信 任策略。它支持生成加密的安全偽隨機數。同時,它也支持對證書和keychain密鑰進行保 存,是用戶
57、敏感數據的安全倉庫。commoncrypto接口另外還支持對稱加密、hmac以及digestso實際上,digests的 功能實和openssl庫常用的功能兼容,但是ios無法使用openssl庫。在ios 3.0及其后續版本的系統中,您可以讓所創建的多個應用程序共享某些 keychain項,這樣可以il湘同套件內的應用程序的互用更流暢。舉個例子,您可以在應用 程序間共享用戶密碼和及其他元素。通過這種方法,您就不需要在每個應用程序單獨對用戶 作岀捉示。如應用程序需要共享數據,則侮個應用程序的xcode i程必須配備恰當的資格。system系統層包括內核環境、驅動及操作系統底層unix接口。內核
58、以mach為基礎,它負 責操作系統的各個方面,包括管理系統的虛擬內存、線程、文件系統、網絡以及進程間通訊。 這一層包含的驅動是系統喚件和系統框架的接口。出于安全方面的考慮,內核和驅動只允許 少數系統框架和應用程序訪問。應用程序可以使用ios提供的libsystem庫訪問多種操作 系統底層功能。libsystem庫的接口基于c語言,可為下述功能提供支持: 線程(posix線程) 網絡(bsd socke 文件系統訪問 標準i/o bonjour 和 dns 服務 區域信息 內存分配 數學計算許多core os技術的頭文件位于<ios_sdk>/usr/include/目錄,<ios_sdk>是 xcode安裝目錄屮目標sdk的路徑。六、從cocoa遷移到ios如果您是一名cocoa開發者,貝ij會對ios屮的許多框架感到熟悉。雖然ios的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司推行自主化管理制度
- 影視公司財務部管理制度
- 普通門診用藥管理制度
- 旅游公司投訴管理制度
- 施工單位材料管理制度
- 護理規范及安全管理制度
- 景區衛生檢查管理制度
- 大倉庫管理散貨管理制度
- 智能物資倉庫管理制度
- 危險品冷鏈車隊管理制度
- 2025至2030中國執法系統行業經營效益及前景運行態勢分析報告
- 2025年廣東省萬閱大灣區百校聯盟中考二模語文試題(含答案)
- 護士理論考試試題及答案
- 學生因病缺課管理制度
- 2025年江蘇省蘇州園區星海中考英語二模試卷
- 福建省廈門市2023-2024學年高一下學期期末質量檢測歷史試題(解析版)
- 工程項目經理競聘演講稿
- 天津水務集團有限公司招聘考試真題2024
- 《Linux系統安全》課件
- 辦公家具產品設計方案
- 第三屆全國技能大賽競賽(裝配鉗工)選拔賽備考試題(附答案)
評論
0/150
提交評論