iOS的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)層(Core OS layer)、核心服務(wù)層(Core Services layer)、媒體層(Media layer)和可觸摸層(Cocoa Touch layer)。理解ios的系統(tǒng)構(gòu)架,對(duì)我們?nèi)粘i_(kāi)發(fā)有很大幫助.其實(shí)iOS是基于UNIX的,所以我們完全可以相信這個(gè)操作系統(tǒng),要知道從系統(tǒng)的穩(wěn)定性上來(lái)說(shuō)它要比其他操作系統(tǒng)的產(chǎn)品好很多。
ios整個(gè)框架架構(gòu)圖如下:
1、Core OS 核心層:包含Accelerate Framework、External Accessory Framework、Security Framework、System等幾個(gè)框架,基本都是基于C語(yǔ)言的接口
2、Core Services核心服務(wù)層:包含Address Book Framework、CFNetwork Framework、Core Data Framework、Core Foundation Framework、Core Location Framework、Core Media Framework、Core Telephony Framework、Event Kit Framework、Foundation Framework、Mobile Core Services Framework、Quick Look Framework、Store Kit Framework、System Configuration Framework、Block Objects、Grand Central Dispatch? 、In App Purchase、Location Services、SQLite、XML Support等一些框架,也基本都是基于c語(yǔ)言的接口。
3、Mediah媒體層:包含Core Graphics、Core Animation、OpenGL ES、Core Text、Image I/O、Assets Library Framework、Media Player Framework、AV Foundation、OpenAL、Core Audio Frameworks、AV Foundation、Core Media等等
4、Cocoa Touch 觸摸層:包括Address BookUI Framework、Event Kit UI Framework、Game Kit Framework、iAd Framework、Map Kit Framework、Message UI Framework、UIKit Framework等等,這一層基本都是基于Objective-C的接口
IOS操作系統(tǒng)的層次結(jié)構(gòu)及相關(guān)框架
編寫(xiě)成型的產(chǎn)品,需要的不僅僅是語(yǔ)言本身,同時(shí)許多庫(kù)需要協(xié)同使用。語(yǔ)言只是產(chǎn)品開(kāi)發(fā)的“膠水”,而框架和上面的這些庫(kù)才是 iOS 產(chǎn)品的骨架。
Cocoa 是蘋(píng)果開(kāi)發(fā)體系的統(tǒng)稱(chēng),Cocoa 包含一些主要的 OC 對(duì)象庫(kù),我們稱(chēng)這些對(duì)象庫(kù)為框架。框架是由許多類(lèi)、方法、函數(shù)和文檔按照一定的邏輯組織起來(lái)的集合,以使研發(fā)程序更容易。為所有程序開(kāi)發(fā)奠定基礎(chǔ)的框架稱(chēng)為 Foundation 框架。
術(shù)語(yǔ) Cocoa:是指 Foundation 、Core Data 和 AppKit(Application Kit) 框架框架。用于 Mac OS X 設(shè)備上的應(yīng)用程序開(kāi)發(fā)。
術(shù)語(yǔ) Cocoa Touch:是指 Foundation 、Core Data 和 UIKit 框架。用于 iOS 設(shè)備上的應(yīng)用程序開(kāi)發(fā)。
1)Core OS 核心層:
包含 Accelerate Framework、External Accessory Framework、Security Framework、System 等幾個(gè)框架,基本都是基于 C 語(yǔ)言的接口。是最接近于操作系統(tǒng)的一層,在這個(gè)層次上,主要實(shí)現(xiàn)硬件以及操作系統(tǒng)接口封裝。是用FreeBSD和Mach所改寫(xiě)的Darwin, 是開(kāi)源、符合POSIX標(biāo)準(zhǔn)的一個(gè)Unix核心。這一層包含或者說(shuō)是提供了整個(gè)iPhone OS的一些基礎(chǔ)功能,比如:硬件驅(qū)動(dòng), 內(nèi)存管理,程序管理,線(xiàn)程管理(POSIX),文件系統(tǒng),網(wǎng)絡(luò)(BSD Socket),以及標(biāo)準(zhǔn)輸入輸出等等,所有這些功能都會(huì)通過(guò)C語(yǔ)言的API來(lái)提供。另外,值得一題的是,這一層最具有UNIX色彩,如果你需要把 UNIX上所開(kāi)發(fā)的程序移植到iPhone上,多半都會(huì)使用到Core OS的API.
核心OS層的驅(qū)動(dòng)也提供了硬件和系統(tǒng)框架之間的接口。然而,由于安全的考慮,只有有限的系統(tǒng)框架類(lèi)能訪問(wèn)內(nèi)核和驅(qū)動(dòng)。
iPhone OS提供了許多訪問(wèn)操作系統(tǒng)低層功能的接口集,iPhone 應(yīng)用通過(guò)LibSystem庫(kù)來(lái)訪問(wèn)這些功能,這些接口集如下所示:
線(xiàn)程(POSIX線(xiàn)程);
網(wǎng)絡(luò)(BSD sockets);
文件系統(tǒng)訪問(wèn);
標(biāo)準(zhǔn)I/O;
Bonjour和DNS服務(wù);
現(xiàn)場(chǎng)信息(Locale Information);
內(nèi)存分配;
數(shù)學(xué)計(jì)算。
許多Core OS技術(shù)的頭文件位于目錄/usr/include/,iPhoneSDK是SDK的安裝目錄。
2)Core Services 核心服務(wù)層:
包含 Address Book Framework、CFNetwork Framework、Core Data Framework、Core Foundation Framework、Core Location Framework、Core Media Framework、Core Telephony Framework、Event Kit Framework、Foundation Framework、Mobile Core Services Framework、Quick Look Framework、Store Kit Framework、System Configuration Framework、Block Objects、Grand Central Dispatch、In App Purchase、Location Services、SQLite、XML Support 等一些框架,也基本都是基于 C 語(yǔ)言的接口。
Core Services在Core OS基礎(chǔ)上提供了更為豐富的功能, 它包含了Foundation.Framework和Core Foundation.Framework, 之所以叫Foundation ,就是因?yàn)樗峁┝艘幌盗刑幚碜执?排列,組合,日歷,時(shí)間等等的基本功能。Foundation是屬于objective-c的API,Core Fundation是屬于C的API。另外Core servieces還提供了其他的功能,比如:Security, Core Location, SQLite, 和Address Book. 其中Security是用來(lái)處理認(rèn)證,密碼管理,按安全性管理的; Core Location是用來(lái)處理GPS定位的;SQLLite是輕量級(jí)的數(shù)據(jù)庫(kù),而AddressBook則用來(lái)處理電話(huà)薄資料的。下面是具體介紹:
(1)Foundation 框架提供數(shù)值了字符串、數(shù)值的管理、容器及枚舉、分布式計(jì)算、事件循環(huán)、URL與數(shù)據(jù)流操作、國(guó)際化、以及其他與圖形用戶(hù)界面沒(méi)有直接關(guān)系的功能。其中類(lèi)和常數(shù)常用NS前綴來(lái)標(biāo)志。
你的應(yīng)用程序,UIKit和其它的框架都是建立在Foundation框架上面的。Foundation框架是用Object-C對(duì)Core Foundation框架里許多特性的封裝。
使用Foundation可以:
? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建和管理集合,比如數(shù)組和字典
? ? ? ? ? ? ? ? ? ? ? 訪問(wèn)存儲(chǔ)在應(yīng)用程序里的圖片和其它資源
? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建和管理字符串
? ? ? ? ? ? ? ? ? ? ? 提交和接收通知
? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建日期和時(shí)間對(duì)象
? ? ? ? ? ? ? ? ? ? ?自動(dòng)發(fā)現(xiàn)IP網(wǎng)絡(luò)上的設(shè)備
? ? ? ? ? ? ? ? ? ? ?操作URL流
? ? ? ? ? ? ? ? ? ? ?執(zhí)行異步代碼
(2)Core Data 框架主要在數(shù)據(jù)模型、數(shù)據(jù)存儲(chǔ)方面發(fā)揮作用。在程序運(yùn)行的時(shí)候,Core Data 框架會(huì)創(chuàng)建并管理數(shù)據(jù)模型的實(shí)例,同時(shí)還對(duì)外提供數(shù)據(jù)模型訪問(wèn)接口。除此之外,Core Data 還可以將對(duì)象數(shù)據(jù)存儲(chǔ)在 SQLite 數(shù)據(jù)庫(kù)以獲得性能優(yōu)化、管理 undo/redo(撤銷(xiāo)/重做)等操作,還支持在內(nèi)存中對(duì)數(shù)據(jù)進(jìn)行歸類(lèi)、過(guò)濾及組織數(shù)據(jù)。
Core Data提供對(duì)象的管理,使用Core Data,你可以創(chuàng)建模型對(duì)象,并管理這些對(duì)象。你管理這這些對(duì)象間的聯(lián)系并修改數(shù)據(jù)。Core Data提供的內(nèi)建SQLlite技術(shù)可以高效的管理數(shù)據(jù)。
使用Core Data可以:
? ? ? ? ? ? ? ? ? ?在庫(kù)里存儲(chǔ)和接收對(duì)象
? ? ? ? ? ? ? ? ? ?提供基本的undo/redo
? ? ? ? ? ? ? ? ? 自動(dòng)驗(yàn)證屬性值
? ? ? ? ? ? ? ? ? ?過(guò)濾、分組和優(yōu)化內(nèi)存中的數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? 用[NSFetchedResultsController]管理表視圖中的結(jié)果
? ? ? ? ? ? ? ? ? ? 支持基于文檔的應(yīng)用程序
(3)電話(huà)本
電話(huà)本框架(AddressBook.framework)提供了保存在手機(jī)設(shè)備中的電話(huà)本編程接口。開(kāi)發(fā)者能使用該框架訪問(wèn)和修改存儲(chǔ)在用戶(hù)聯(lián)系人數(shù)據(jù)庫(kù)里的記錄。例如,一個(gè)聊天程序可以使用該框架獲得可能的聯(lián)系人列表,啟動(dòng)聊天的進(jìn)程(Process),并在視圖上顯示這些聯(lián)系人信息等。
(4)核心基礎(chǔ)框架
核心基礎(chǔ)框架(CoreFoundation.framework)是基于C語(yǔ)言的接口集,提供iPhone應(yīng)用的基本數(shù)據(jù)管理和服務(wù)功能。該框架支持如下功能:
Collection數(shù)據(jù)類(lèi)型(Arrays、 Sets等);
Bundles;
字符串管理;
日期和時(shí)間管理;
原始數(shù)據(jù)塊管理;
首選項(xiàng)管理;
URL和Stream操作;
線(xiàn)程和運(yùn)行循環(huán)(Run Loops);
端口和Socket通信。
核心基礎(chǔ)框架與基礎(chǔ)框架是緊密相關(guān)的,它們?yōu)橄嗤幕竟δ芴峁┝薕bjective-C接口。如果開(kāi)發(fā)者混合使用Foundation Objects 和Core Foundation類(lèi)型,就能充分利用存在兩個(gè)框架中的"toll-free bridging"。toll-free bridging意味著開(kāi)發(fā)者能使用這兩個(gè)框架中的任何一個(gè)的核心基礎(chǔ)和基礎(chǔ)類(lèi)型,例如Collection和字符串類(lèi)型等。每個(gè)框架中的類(lèi)和數(shù)據(jù)類(lèi)型的描述注明該對(duì)象是否支持toll-free bridged。如果是,它與哪個(gè)對(duì)象橋接(toll-free bridged)。
(5)CFNetwork
CFNetwork框架(CFNetwork.framework)是一組高性能的C語(yǔ)言接口集,提供網(wǎng)絡(luò)協(xié)議的面向?qū)ο蟮某橄蟆i_(kāi)發(fā)者可以使用 CFNetwork框架操作協(xié)議棧,并且可以訪問(wèn)低層的結(jié)構(gòu)如BSD Sockets等。同時(shí),開(kāi)發(fā)者也能簡(jiǎn)化與FTP和HTTP服務(wù)器的通信,或解析DNS等任務(wù)。使用CFNetwork框架實(shí)現(xiàn)的任務(wù)如下所示:
BSD Sockets;
利用SSL或TLS創(chuàng)建加密連接;
解析DNS Hosts;
解析HTTP協(xié)議,鑒別HTTP和HTTPS服務(wù)器;
在FTP服務(wù)器工作;
發(fā)布、解析和瀏覽Bonjour服務(wù)。
(6)核心位置框架(Core Location Framework)
核心位置框架(CoreLocation.framework)主要獲得手機(jī)設(shè)備當(dāng)前的經(jīng)緯度,核心位置框架利用附近的GPS、蜂窩基站或Wi- Fi信號(hào)信息測(cè)量用戶(hù)的當(dāng)前位置。iPhone地圖應(yīng)用使用這個(gè)功能在地圖上顯示用戶(hù)的當(dāng)前位置。開(kāi)發(fā)者能融合這個(gè)技術(shù)到自己的應(yīng)用中,給用戶(hù)提供一些位置信息服務(wù)。例如可以提供一個(gè)服務(wù):基于用戶(hù)的當(dāng)前位置,查找附近的餐館、商店或設(shè)備等。
(7)安全框架(Security Framework)
iPhone OS除了內(nèi)置的安全特性外,還提供了外部安全框架(Security.framework),從而確保應(yīng)用數(shù)據(jù)的安全性。該框架提供了管理證書(shū)、公鑰/私鑰對(duì)和信任策略等的接口。它支持產(chǎn)生加密安全的偽隨機(jī)數(shù),也支持保存在密鑰鏈的證書(shū)和密鑰。對(duì)于用戶(hù)敏感的數(shù)據(jù),它是安全的知識(shí)庫(kù)(Secure Repository)。CommonCrypto接口也支持對(duì)稱(chēng)加密、HMAC和數(shù)據(jù)摘要。在iPhone OS里沒(méi)有OpenSSL庫(kù),但是數(shù)據(jù)摘要提供的功能在本質(zhì)上與OpenSSL庫(kù)提供的功能是一致的。
(8)SQLite
iPhone應(yīng)用中可以嵌入一個(gè)小型SQL數(shù)據(jù)庫(kù)SQLite,而不需要在遠(yuǎn)端運(yùn)行另一個(gè)數(shù)據(jù)庫(kù)服務(wù)器。開(kāi)發(fā)者可以創(chuàng)建本地?cái)?shù)據(jù)庫(kù)文件,并管理這些文件中的表格和記錄。數(shù)據(jù)庫(kù)SQLite為通用的目的而設(shè)計(jì),但仍可以?xún)?yōu)化為快速訪問(wèn)數(shù)據(jù)庫(kù)記錄。訪問(wèn)數(shù)據(jù)庫(kù)SQLite的頭文件位于/usr/include/sqlite3.h,其中是SDK安裝的目標(biāo)路徑。
(9)支持XML
基礎(chǔ)框架提供NSXMLParser類(lèi),解析XML文檔元素。libXML2庫(kù)提供操作XML內(nèi)容的功能,這個(gè)開(kāi)放源代碼的庫(kù)可以快速解析和編輯 XML數(shù)據(jù),并且轉(zhuǎn)換XML內(nèi)容到HTML。訪問(wèn)libXML2庫(kù)的頭文件位于目錄/usr/include /libxml2/,其中是SDK安裝的目標(biāo)目錄。
3)Media 媒體層:
包含 Core Graphics、Core Animation、OpenGL ES、Core Text、Image I/O、Assets Library Framework、Media Player Framework、AV Foundation、OpenAL、Core Audio Frameworks、AV Foundation、Core Media 等等。
如同其名,Media層提供了圖片,音樂(lè),影片等多媒體功能。圖像分為2D圖像和3D圖像,前者由Quartz2D來(lái)支持,后者則是用OpenglES.與音樂(lè)對(duì)應(yīng)的模組是Core Audio和OpenAL, Media Player 實(shí)現(xiàn)了影片的播放, 而最后還提供了Core Animation來(lái)對(duì)強(qiáng)大動(dòng)畫(huà)的支持。
媒體層包含圖形技術(shù)(包含動(dòng)畫(huà)技術(shù))、音頻技術(shù)和視頻技術(shù),可以使用這層的技術(shù)更快速的創(chuàng)建高級(jí)的圖形和動(dòng)畫(huà),方便的獲得音頻、視頻的支持。
(1)圖像技術(shù)(Graphics Technologies):是 iOS 應(yīng)用程序的重要組成部分。創(chuàng)建應(yīng)用程序最簡(jiǎn)單、最有效的方法是使用事先渲染過(guò)的圖片,搭配上標(biāo)準(zhǔn)視圖以及 UIKit 框架的控件,然后把繪制任務(wù)交給系統(tǒng)來(lái)執(zhí)行。
a. ? ? Core Graphics :也被稱(chēng)為 Quartz,用于處理本地 2D 向量渲染和圖片渲染。
Quartz。核心圖像框架(CoreGraphics.framework)包含了Quartz 2D畫(huà)圖API,Quartz與在Mac OS中采用的矢量圖畫(huà)引擎是一樣先進(jìn)的。Quartz支持基于路徑(Path-based)畫(huà)圖、抗混淆(Anti-aliased)重載、梯度(Gradients)、圖像(Images)、顏色(Colors)、坐標(biāo)空間轉(zhuǎn)換(Coordinate-space Transformations)、pdf文檔創(chuàng)建、顯示和解析。雖然API是基于C語(yǔ)言的,它采用基于對(duì)象的抽象表征基礎(chǔ)畫(huà)圖對(duì)象,使得圖像內(nèi)容易于保存和復(fù)用。
在iOS中最簡(jiǎn)單且最快捷的創(chuàng)建圖形的方式是使用UIKit框架提供的基于預(yù)渲染圖形的視圖和控 件,然后讓UIKit和iOS完成繪制。但是當(dāng)你需要?jiǎng)?chuàng)建復(fù)雜的圖形時(shí),Core Graphics則提供了更底層的庫(kù)來(lái)幫助你。
使用Core Graphics可以:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?創(chuàng)建基于路徑的繪圖、
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?抗鋸齒渲染、
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?添加梯度、圖片和顏色、
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Use coordinate-space transformations.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建、顯示和分析PDF文檔
b.? ? 核心動(dòng)畫(huà)(Core Animation):Quartz Core 框架的一部分,為動(dòng)畫(huà)視圖和其他內(nèi)容提供更高級(jí)別支持。
Quartz核心框架(QuartzCore.framework)包含CoreAnimation接口,Core Animation是一種高級(jí)動(dòng)畫(huà)和合成技術(shù),它用優(yōu)化的重載路徑(Rendering Path)實(shí)現(xiàn)復(fù)雜的動(dòng)畫(huà)和虛擬效果。它用一種高層的Objective-C接口配置動(dòng)畫(huà)和效果,然后重載在硬件上獲得較好的性能。Core Animation集成到iPhone OS 的許多部分,包括UIKit類(lèi)如UIView,提供許多標(biāo)準(zhǔn)系統(tǒng)行為的動(dòng)畫(huà)。開(kāi)發(fā)者也能利用這個(gè)框架中的Objective-C接口創(chuàng)建客戶(hù)化的動(dòng)畫(huà)。
UIKit提供建立在Core Animation之上的動(dòng)畫(huà)。如果你需要比UIKit能力更高級(jí)的功能,可以直接使用Core Animation。Core Animation接口包含在Quartz Core框架里。使用Core Animation可以創(chuàng)建嵌套的對(duì)象,并且可以對(duì)它們操作、旋轉(zhuǎn)、縮放和轉(zhuǎn)換。使用Core animation,你可以創(chuàng)建動(dòng)態(tài)的用戶(hù)界面而不用使用更底層的圖形API,如OpenGL ES。
使用Core Animation可以:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?創(chuàng)建定制動(dòng)畫(huà)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 添加定時(shí)函數(shù)和圖形
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 支持幀動(dòng)畫(huà)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Specify graphical layout constraints.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Group multiple-layer changes into anatomic update.
c. ? ? ? OpenGl ES :為使用硬件加速接口的 2D 和 3D 渲染提供支持。
OpenGL ES框架(OpenGLES.framework)符合OpenGL ES v1.1規(guī)范,它提供了一種繪畫(huà)2D和3D內(nèi)容的工具。OpenGL ES 框架是基于C語(yǔ)言的框架,與硬件設(shè)備緊密相關(guān),為全屏游戲類(lèi)應(yīng)用提供高幀率(high frame rates)。開(kāi)發(fā)者總是要使用OpenGL框架的EAGL接口,EAGL接口是OpenGL ES框架的一部分,它提供了應(yīng)用的OpenGL ES畫(huà)圖代碼和本地窗口對(duì)象的接口。
OpenGL ES支持2D和3D繪圖,Apple的OpenGL ES實(shí)現(xiàn)通過(guò)硬件提供了高速的全屏游戲式的應(yīng)用程序。
使用OpenGL ES可以:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?創(chuàng)建2D和3D圖形
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?創(chuàng)建更復(fù)雜的圖形,比如數(shù)據(jù)虛擬化、模擬飛行,或者視頻游戲
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 訪問(wèn)底層圖形設(shè)備
d. ? ? ? Core Text :提供一個(gè)精密的文本布局和渲染引擎。
f. ? ? ? ? Image I/O :提供讀取及編寫(xiě)大多數(shù)圖形格式的接口。
Assets Library framework :資產(chǎn)庫(kù)框架,用于訪問(wèn)用戶(hù)照片庫(kù)中的照片和視頻。
(2)音頻技術(shù)(Audio Technologies):iOS 音頻技術(shù)可以用來(lái)播放或錄制高質(zhì)量的音頻,也可以用于觸發(fā)設(shè)備的震動(dòng)功能。
iPhone OS的音頻技術(shù)為用戶(hù)提供了豐富的音頻體驗(yàn)。它包括音頻回放,高質(zhì)量的錄音和觸發(fā)設(shè)備的振動(dòng)功能等。
iPhone OS的音頻技術(shù)支持如下音頻格式:AAC、Apple Lossless(ALAC)、A-law、IMA/ADPCM(IMA4)、Linear PCM、μ-law和Core Audio等。
① 核心音頻(Core Audio Family)。核心音頻框架家族(Core Audio family of frameworks)提供了音頻的本地支持,如表16-1所示。Core Audio是一個(gè)基于C語(yǔ)言的接口,并支持立體聲(Stereo Audio)。開(kāi)發(fā)能采用iPhone OS 的Core Audio框架在iPhone 應(yīng)用中產(chǎn)生、錄制、混合和播放音頻。開(kāi)發(fā)者也能通過(guò)核心音頻訪問(wèn)手機(jī)設(shè)備的振動(dòng)功能。
核心音頻框架:? 框架(Framework)?服務(wù)(Service)
CoreAudio.framework :定義核心音頻的音頻數(shù)據(jù)類(lèi)型
AudioUnit.framework:提供音頻和流媒體文件的回放和錄制,并且管理音頻文件和播放提示聲音
AudioToolbox.framework:提供使用內(nèi)置音頻單元服務(wù),音頻處理模塊
② OpenAL。iPhone OS 也支持開(kāi)放音頻庫(kù)(Open Audio Library, OpenAL)。OpenAL是一個(gè)跨平臺(tái)的標(biāo)準(zhǔn),它能傳遞位置音頻(Positional Audio)。開(kāi)發(fā)者能應(yīng)用OpenAL在需要位置音頻輸出的游戲或其他應(yīng)用中實(shí)現(xiàn)高性能、高質(zhì)量的音頻。
由于OpenAL是一個(gè)跨平臺(tái)的標(biāo)準(zhǔn),采用OpenAL的代碼模塊可以平滑地移植到其他平臺(tái)。
媒體播放器框架:是可以拿來(lái)即用的播放器。
AV Foundation :提供用于管理音頻的播放或錄制的接口。
Core Audio :可以使用此框架的接口播放系統(tǒng)的警報(bào)聲音、觸發(fā)的震動(dòng)功能、管理多聲道的緩沖和播放、對(duì)音頻內(nèi)容進(jìn)行流化處理。
(3)視頻技術(shù):可用于播放應(yīng)用程序包含的電影文件以及來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)流內(nèi)容。如果設(shè)備具有合適的視頻硬件,這些技術(shù)也可以用于捕捉視頻,并可將捕捉到的視頻集成到應(yīng)用程序。
iPhone OS通過(guò)媒體播放框架(MediaPlayer.framework)支持全屏視頻回放。媒體播放框架支持的視頻文件格式包括.mov, .mp4,.m4v和.3gp,并應(yīng)用如下壓縮標(biāo)準(zhǔn):
① H.264 Baseline Profile Level 3.0 video,在30 f/s 的情況下分辨率達(dá)到640×480像素。注意:不支持B frames;
② MPEG4規(guī)范的視頻部分;
③ 眾多的音頻格式,包含在音頻技術(shù)的列表里,如AAC、Apple Lossless (ALAC)、A-law、IMA/ADPCM(IMA4)、線(xiàn)性PCM、μ-law和Core Audio等。
媒體播放器框架:可用于播放應(yīng)用程序中全屏或部分屏的電影。
AV Foundation :可以對(duì)電影的捕捉和播放進(jìn)行管理。
Core Media :對(duì)較高級(jí)框架使用的底層類(lèi)型進(jìn)行描述,同時(shí)也提供一些底層接口,用于對(duì)媒體進(jìn)行處理。
4)Cocoa Touch 觸摸層:
包括 Address Book UI Framework、Event Kit UI Framework、Game Kit Framework、iAd Framework、Map Kit Framework、Message UI Framework、UIKit Framework 等等,這一層基本都是基于 Objective-c 的接口。
包含了用于 iOS 應(yīng)用開(kāi)發(fā)的圖形界面構(gòu)建的類(lèi)。其中所有的類(lèi),都以“UI”為前綴。
1)UIKit
所有的iOS應(yīng)用程序都基于UIKit,你不能是應(yīng)用程序脫離這個(gè)框架。UIKit提供了在屏幕上繪制的機(jī)制,捕獲事件,和創(chuàng)建通用用戶(hù)界面元素。UIKit也通過(guò)管理顯示在屏幕上的組件來(lái)組織復(fù)雜的項(xiàng)目。
使用UIKit可以:
? ? ? ? ? ? ? ?構(gòu)建和管理你的用戶(hù)界面
? ? ? ? ? ? ? ?捕獲觸摸和基于移動(dòng)的事件
? ? ? ? ? ? ? ?呈現(xiàn)文字和web內(nèi)容
? ? ? ? ? ? ? ?優(yōu)化你的多任務(wù)程序
? ? ? ? ? ? ? ?創(chuàng)建定制的用戶(hù)界面元素
(2)電話(huà)本UI框架(Address Book UI Framework)
電話(huà)本UI框架(AddressBookUI.framework)是一個(gè)Objective-C標(biāo)準(zhǔn)程序接口,主要用來(lái)創(chuàng)建新聯(lián)系人,編輯和選擇電話(huà)本中存在的聯(lián)系人。它簡(jiǎn)化了在iPhone應(yīng)用中顯示聯(lián)系人信息,并確保所有應(yīng)用使用相同的程序接口,保證應(yīng)用在不同平臺(tái)的一致性。