iOS框架簡(jiǎn)介

四大部分

一.Cocoa Touch

Cocoa Touch層包含創(chuàng)建 iOS應(yīng)用程序所需的關(guān)鍵框架。上至實(shí)現(xiàn)應(yīng)用程序可視界面,下至與高級(jí)系統(tǒng)服務(wù)交互,都需要該層技術(shù)提供底層基礎(chǔ)。

高級(jí)特性

多任務(wù)

應(yīng)用程序進(jìn)入后臺(tái)后,不會(huì)被消除,用戶可以在程序進(jìn)入后臺(tái)后

數(shù)據(jù)保護(hù)
蘋果推送通知
本地通知
手勢(shì)識(shí)別

提供UIGestureRecognizer

文件共享支持
點(diǎn)對(duì)點(diǎn)服務(wù)
標(biāo)準(zhǔn)視圖控制器
  • 選擇照片,視頻,拍照,錄制視頻 - UIImagePickerController
  • 顯示編輯聯(lián)系人頁面 - 參考Contacts,或者AddressBookUI框架
  • 顯示發(fā)送短信,郵件頁面 - 參考MessageUIKit框架
  • 顯示日歷事件編輯,修改頁面 - 參考EventUIKit框架
外部設(shè)備支持

Cocoa Touch層包含的框架

UIKit(UIKit.Framework):Objective-C編程接口提供iOS應(yīng)用程序的圖形及事件驅(qū)動(dòng)的所有關(guān)鍵基礎(chǔ),具有以下核心功能
  • 應(yīng)該用程序管理 - UIApplication
  • 用戶界面管理 - UIWindow
  • 圖形,窗口支持 - UIWindow
  • 多任務(wù)支持
  • 處理觸摸,移動(dòng) - UIResponser
  • 標(biāo)準(zhǔn)視圖控件 - UIView 等等
  • 文本,webView等操作 - UILabel,UIWebView
  • 使用動(dòng)畫
  • 調(diào)用相機(jī),設(shè)備支持
  • 加速器數(shù)據(jù)
  • 用戶圖片庫
  • 遠(yuǎn)程通知,本地通知
AddressBookUI(AddressBookUI.Framework)-iOS9棄用:提供選擇聯(lián)系人,編輯聯(lián)系人界面接口
Contacts(Contacts.Framework)-iOS8+:替代AddressBookUI,提供選擇,編輯聯(lián)系人界面的接口
EventUIKit(EventUIKit.Framework):提供日歷事件編輯,添加接口
MapKit(MapKit.Framework):提供地圖編程接口
MessageUIKit(MessageUIKit):提供信息,郵件發(fā)送界面接口
PhotosUI(PhotosUI):提供圖片選擇界面接口
WatchKit:蘋果手表開發(fā)接口
Twitter:推特編程相關(guān)接口
iAd:廣告編程接口,使用蘋果廣告服務(wù)
NotificationCenter 系統(tǒng)通知

二.Media 媒體服務(wù)接口層

媒體層包含圖形技術(shù)、音頻技術(shù)和視頻技術(shù),這些技術(shù)相互結(jié)合就可為移動(dòng)設(shè)備帶來最好的多媒體體驗(yàn),更重要的是,它們讓創(chuàng)建外觀音效俱佳的應(yīng)用程序變得更加容易。您可以使用iOS的高級(jí)框架更快速地創(chuàng)建高級(jí)的圖形和動(dòng)畫,也可以通過底層框架訪問必要的工具,從而以某種特定的方式完成某種任務(wù)。

高級(jí)特性

圖形技術(shù)

高質(zhì)量的圖形是iOS應(yīng)用程序的重要組成部分。創(chuàng)建應(yīng)用程序最簡(jiǎn)單最有效的方法是使用事先渲染過的圖片,搭配上標(biāo)準(zhǔn)視圖以及UIKit框架的控件,然后把繪制任務(wù)交給系統(tǒng)來執(zhí)行。但是在某些情況下,您可能需要一些UIKit所不具有的功能,而且需要定制某些行為。在這種情況下,您可以使用下述技術(shù)管理應(yīng)用程序的圖形內(nèi)容:

  1. Core Graphics (也被稱為Quartz),用于處理本地2D向量渲染和圖片渲染。
  2. Core Animation ( Quartz Core框架的一部分),為動(dòng)畫視圖和其他內(nèi)容提供更高級(jí)別支持。
  3. OpenGL ES,為使用硬件加速接口的2D和3D渲染提供支持。
  4. Core Text,提供一個(gè)精密的文本布局和渲染引擎。
  5. Image I/O,提供讀取及編寫大多數(shù)圖形格式的接口。
  6. 資產(chǎn)庫框架(Assets Library framework),可用于訪問用戶照片庫中的照片和視頻。
音頻技術(shù)

iOS音頻技術(shù)可幫助您為用戶提供豐富多彩的音響體驗(yàn)。您可以使用音頻技術(shù)來播放或錄制高質(zhì)量的音頻,也可以用于觸發(fā)發(fā)設(shè)備的震動(dòng)功能(具有震動(dòng)功能的設(shè)備)。

  1. 媒體播放器框架。該框架可以讓訪問用戶的iTune庫變得很容易,并且支持播放曲目和播放列表。
  2. AV Foundation框架。它提供一組簡(jiǎn)單易用的Objective-C接口,可用于管理音頻的播放或錄制。.
  3. OpenAL框架。它提供一組跨平臺(tái),用于發(fā)布方位音頻的接口。
  4. Core Audio框架。它提供的接口簡(jiǎn)單而精密,可用于播放或錄制音頻內(nèi)容。您可以使用這些接口播放系統(tǒng)的警報(bào)聲音、觸發(fā)備的震動(dòng)功能、管理多聲道的緩沖和播放、對(duì)音頻內(nèi)容進(jìn)行流化處理。
視頻技術(shù)

iOS有數(shù)種技術(shù)可用于播放應(yīng)用程序包的電影文件以及來自網(wǎng)絡(luò)的數(shù)據(jù)流內(nèi)容。如果設(shè)備具有合適的視頻硬件,這些技術(shù)也可用于捕捉視頻,并可將捕獲到的視頻集成到應(yīng)用程序。

系統(tǒng)提供也提供多種方法用于播放或錄制視頻內(nèi)容,您可以根據(jù)需要選擇。選擇視頻技術(shù)的時(shí)候,請(qǐng)盡可能選擇高級(jí)框架,因?yàn)楦呒?jí)框架可以簡(jiǎn)化為提供對(duì)某種功能的支持所需的工作。下面列出的框架由高級(jí)到低級(jí)排列。其中,媒體播放器框架提供最高級(jí)的接口:

  1. 媒體播放器模塊:提供一組易用的接口,播放音視頻文件
  2. AVFoundation:提供一組Objective-C接口,用戶自定義接口,播放音視頻,也可以捕捉音視頻數(shù)據(jù)
  3. CoreMedia:底層的音視頻C語言接口

媒體層包含的常用框架

AssetsLibrary(iOS8+推薦使用Photo):

該框架提供一個(gè)查詢界面,您可以通過它查找用戶照片和數(shù)據(jù)。通過使用該框架,您可以訪問Photos管理的資產(chǎn),包括用戶保存的相冊(cè)以及導(dǎo)入到設(shè)備中的圖片或視頻。而且您也可以將照片或者視頻保存到用戶的相冊(cè)

AVFoundation:

該框架包含的Objective-C 類可用于播放音頻內(nèi)容。通過使用該框架,您可以播放聲音文件或播放內(nèi)存中的音頻數(shù)據(jù),也可以同時(shí)播放多個(gè)聲音,并對(duì)各個(gè)聲音的播放特定進(jìn)行控制。

  1. 媒體數(shù)據(jù)管理
  2. 媒體編輯
  3. 音視頻捕捉
  4. 音視頻播放
CoreGraphics:

包含Quartz 2D繪圖API接口 。Quartz 是Mac OS X系統(tǒng)使用的向量繪圖引擎,它支持基于路徑繪圖、抗鋸齒渲染、漸變、圖片、顏色、坐標(biāo)空間轉(zhuǎn)換、PDF文件的創(chuàng)建、顯示和解析。雖然API基于C語言,但是它使用基于對(duì)象的抽象以表示基本繪圖對(duì)象,這樣可以讓開發(fā)者可以更方便地保存并復(fù)用圖像內(nèi)容。

CoreText框架:

Core Text框架提供一個(gè)完整的文本布局引擎,您可以通過它管理文本在屏幕上的擺放。所管理的文本也可以使用不同的字體和渲染屬性。該框架專為諸如字處理程序這類需要具有精密文本處理功能的應(yīng)用程序而設(shè)計(jì)。如果您的應(yīng)用程序只需要一種文本輸入和顯示,則應(yīng)使用UIKit框架中已有的類。

媒體播放框架(MediaPlayer-iOS9+推薦AVKit):

媒體播放器框架 (MediaPlayer.framework)為應(yīng)用程序播放視頻和音頻內(nèi)容提供高級(jí)支持。通過該框架,您就可以使用標(biāo)準(zhǔn)系統(tǒng)界面播放視頻。 iOS 3.0增加了對(duì)訪問用戶iTune庫的支持。因此,您可以利用該框架播放音樂曲目、播放列表、搜索歌曲并向用戶顯示媒體選取界面。

在 iOS 3.2系統(tǒng)中,該框架發(fā)生了變化,開始支持在可改變尺寸的視圖中播放視頻(之前只支持全屏)。另外還新增數(shù)個(gè)界面用于支持配置和管理電影播放。

如需進(jìn)一步了解媒體播放器框架中的類,請(qǐng)查看媒體播放器框架參考 。如需了解如何使用該框架訪問用戶的 iTunes庫,請(qǐng)查看iPod 庫訪問編程指南。

QuartzCore框架:

Quartz Core框架 (QuartzCore.framework)包含Core Animation接口。Core Animation是高級(jí)動(dòng)畫制作和混合技術(shù),它使用經(jīng)過優(yōu)化的渲染路徑實(shí)現(xiàn)復(fù)雜的動(dòng)畫和視覺效果。它提供的高級(jí)Objective-C接口可對(duì)動(dòng)畫效果進(jìn)行配置,然后在設(shè)備硬件中進(jìn)行渲染,以此來提高程序的性能。Core Animation框架被整合到iOS的許多部分(包括UIKit框架中的許多類(如UIView)),可以為多種系統(tǒng)行為提供動(dòng)畫效果。您也可以使用該框架中的Objective-C接口直接創(chuàng)建定制動(dòng)畫。

三.CoreService 層

Core Services層為所有的應(yīng)用程序提供基礎(chǔ)系統(tǒng)服務(wù)??赡軕?yīng)用程序并不直接使用這些服務(wù),但它們是系統(tǒng)很多部分賴以建構(gòu)的基礎(chǔ)。

高階特性

塊對(duì)象

引入block概念,從本質(zhì)上說,塊對(duì)象本質(zhì)上是一個(gè)匿名函數(shù)加上該函數(shù)的伴隨數(shù)據(jù)。有些時(shí)候,其他語言也稱塊對(duì)象為 closure或者lambda。塊對(duì)象非常適用于回調(diào)函數(shù)。如果您需要有很便捷的方法將執(zhí)行代碼和相關(guān)數(shù)據(jù)組合在一起,塊對(duì)象也是很好的選擇。

在 iOS系統(tǒng)中,塊對(duì)象通常用于下述場(chǎng)合:

  • 作為委托或委托方法的替代品。
  • 作為回調(diào)函數(shù)的替代品。
  • 用于實(shí)現(xiàn)一次性操作的完成處理器。
  • 簡(jiǎn)化在群體所有子項(xiàng)上迭代執(zhí)行某種任務(wù)的操作。
  • 配合分發(fā)隊(duì)列??捎糜趫?zhí)行異步任務(wù)。
Grand Central Dispatch (GCD):

iOS 4.0引入了 Grand Central Dispatch (GCD),它是BSD級(jí)別的技術(shù),可用于在應(yīng)用程序內(nèi)管理多個(gè)任務(wù)的執(zhí)行。GCD技術(shù)將異步編程模型和高度優(yōu)化內(nèi)核結(jié)合在一起,可作為多線程的便捷(且更高效)替代。同時(shí),它也為許多種底層任務(wù)( 例如讀寫文件描述符、實(shí)現(xiàn)定時(shí)器、監(jiān)視信號(hào)和處理事件等)提供替代方案。

應(yīng)用內(nèi)付費(fèi)購買:

iOS 3.0引入了應(yīng)用程序內(nèi)購買功能。通過該功能,您可以在應(yīng)用程序內(nèi)出售內(nèi)容或服務(wù)。該功能使用Store Kit框架來實(shí)現(xiàn),它可以為使用iTunes賬戶進(jìn)行的財(cái)務(wù)交易的處理提供基礎(chǔ)支持,應(yīng)用程序只需處理用戶體驗(yàn)及待售內(nèi)容或服務(wù)的展現(xiàn)。

定位服務(wù):

應(yīng)用程序可使用Core Location框架提供的接口追蹤用戶位置。此框架利用當(dāng)前可用的硬件無線電波(包括Wi-Fi、蜂窩無線或者GPS)定位用戶的當(dāng)前位置。應(yīng)用程序可以對(duì)框架提供的信息進(jìn)行裁剪,然后再將其發(fā)送給客戶, 或是用于實(shí)現(xiàn)某些特定功能。舉個(gè)例子,社交應(yīng)用程序允許您找到附近其他應(yīng)用程序用戶,然后再與之進(jìn)行通訊。

SQLite:

SQLite庫允許開發(fā)者將一個(gè)輕量級(jí)SQL數(shù)據(jù)庫嵌入到應(yīng)用程序,而且開發(fā)者不需要運(yùn)行獨(dú)立的遠(yuǎn)程數(shù)據(jù)庫服務(wù)器進(jìn)程。在此之后,開發(fā)者可以在應(yīng)用程序中創(chuàng)建本地?cái)?shù)據(jù)庫文件,管理文件中的表和記錄。雖然SQLite數(shù)據(jù)庫出于通用目的而設(shè)計(jì),但它還是針對(duì)數(shù)據(jù)庫記錄的快速訪問做過優(yōu)化。

XML 支持

Foundation框架支持使用NSXMLParser 類從XML文檔中解析元素,而libXML2庫則為操作XML內(nèi)容提供支持。 libXML2庫是開源的,它可以讓您快速地解析或?qū)懭肴我獾腦ML數(shù)據(jù),也可將XML內(nèi)容轉(zhuǎn)化為HTML文件。

Core Service層包含的常用框架

AddressBook:

支持編程訪問存儲(chǔ)于用戶設(shè)備中的聯(lián)系人信息。如果應(yīng)用程序使用到聯(lián)系人信息,則可通過該框架訪問并修改用戶聯(lián)系人數(shù)據(jù)庫的記錄。舉個(gè)例子,通過使用該框架,聊天程序可以獲取一個(gè)聯(lián)系人列表,利用此列表初始化聊天會(huì)話,并在聯(lián)系人視圖顯示列表的聯(lián)系人。

CFNetwork

CFNetwork框架 (CFNetwork.framework)提供一組高性能基于C語言的接口,它們?yōu)槭褂镁W(wǎng)絡(luò)協(xié)議提供面向?qū)ο蟪橄?。通過這些抽象,您可以對(duì)協(xié)議棧進(jìn)行更精細(xì)的控制,而且可以使用諸如 BSD socket這類底層結(jié)構(gòu)。您也可以通過該框架簡(jiǎn)化諸如與FTP或HTTP服務(wù)器通訊以及DNS主機(jī)解析這類任務(wù)。下面列舉一些可以使用 CFNetwork框架執(zhí)行的任務(wù):

Core Data 框架

iOS提供的一種MV應(yīng)用程序存儲(chǔ)方案

CoreFoundation:

提供Foundation的C語言實(shí)現(xiàn)

CoreLocation框架:

Core Location框架 (CoreLocation.framework)可用于定位某個(gè)設(shè)備當(dāng)前經(jīng)緯度。它可以利用設(shè)備具備的硬件,通過附近的GPS、蜂窩基站或者WiFi信號(hào)等信息計(jì)算用戶方位。Maps應(yīng)用程序就是利用此功能在地圖上顯示用戶當(dāng)前位置。您可以將此技術(shù)結(jié)合到應(yīng)用程序,以此向用戶提供方位信息。例如,應(yīng)用程序可根據(jù)用戶當(dāng)前位置搜索附近飯店、商店或其他設(shè)施 。
在iOS 3.0系統(tǒng)中,該框架開始支持訪問iOS設(shè)備(具有相應(yīng)硬件的設(shè)備)的方向信息。
在iOS 4.0系統(tǒng)中,該框架開始支持低能耗的方位監(jiān)視服務(wù),該服務(wù)利用蜂窩基站跟蹤用戶方位。

Core Media 框架

iOS 4.0引入了Core Media框架 (CoreMedia.framework)。此框架提供AV Foundation框架使用的底層媒體類型。只有少數(shù)需要對(duì)音頻或視頻創(chuàng)建及展示進(jìn)行精確控制的應(yīng)用程序才會(huì)涉及該框架,其他大部分應(yīng)用程序應(yīng)該都用不上。

如需進(jìn)一步了解此框架的函數(shù)和數(shù)據(jù)類型,請(qǐng)閱讀Core Media 框架參考。

Core Telephony 框架

iOS 4.0引入了Core Telephony框架(CoreTelephony.framework)。此框架為訪問具有蜂窩無線的設(shè)備上的電話信息提供接口,應(yīng)用程序可通過它獲取用戶蜂窩無線服務(wù)的提供商信息。如果應(yīng)用程序?qū)τ陔娫捄艚懈信d趣,也可以在相應(yīng)事件發(fā)生時(shí)得到通知。

Event Kit 框架

iOS 4.0引入了 Event Kit框架 (EventKit.framework)。此框架為訪問用戶設(shè)備的日歷事件提供接口。您可以通過該框架訪問用戶日歷中現(xiàn)有事件,可以增加新事件。日歷事件可包含鬧鈴,而且可以配置鬧鈴激活規(guī)則。

Foundation 框架

Foundation框架 (Foundation.framework)為 Core Foundation框架的許多功能提供Objective-C封裝。您可以參考Core Foundation框架了解前面對(duì)Core Foundation框架的描述。

Mobile Core Services 框架

iOS 3.0引入了Mobile Core Services框架 (MobileCoreServices.framework)。此框架定義統(tǒng)一類型標(biāo)識(shí)符 (UTIs)使用的底層類型。

Quick Look 框架

iOS 4.0引入Quick Look框架(QuickLook.framework),應(yīng)用程序可以用過該框架預(yù)覽無法直接支持查看的文件內(nèi)容。如果應(yīng)用程序從網(wǎng)絡(luò)下載文件或者需處理來源未知的文件,則非常適合使用此框架。因?yàn)閼?yīng)用程序只要在獲得文件后,調(diào)用框架提供的視圖控制器就可以直接在界面中顯示文件的內(nèi)容。

Store Kit 框架

iOS 3.0引入Store Kit 框架(StoreKit.framework),此框架為iOS應(yīng)用程序內(nèi)購買內(nèi)容或服務(wù)提供支持。例如,開發(fā)者可以利用此框架允許用戶解鎖應(yīng)用程序的額外功能。或者假設(shè)您是一名游戲開發(fā)人員,則可使用此特性向玩家出售附加游戲級(jí)別。在上述的兩種情況中,Store Kit 框架會(huì)處于交易過程中和財(cái)務(wù)相關(guān)的事件,包括處理用戶通過 iTunes Store賬號(hào)發(fā)出的支付請(qǐng)求并且向應(yīng)用程序提供交易相關(guān)信息。

Store Kit框架主要關(guān)注交易過程中和財(cái)務(wù)相關(guān)的事務(wù),目的是為了確保交易安全準(zhǔn)確。應(yīng)用程序需要處理交易事物的其他因素,包括購買界面和下載(或者解鎖)恰當(dāng)?shù)膬?nèi)容。通過這種任務(wù)劃分方式,您就擁有購買內(nèi)容的控制權(quán),可以決定希望展示給用戶的購買界面以及何時(shí)向用戶展示這些界面,同時(shí)也可以決定和應(yīng)用程序最匹配的交付機(jī)制。

System Configuration 框架

System Configuration框架(SystemConfiguration.framework) 可用于確定設(shè)備的網(wǎng)絡(luò)配置。您可以使用該框架判斷Wi-Fi或者蜂窩連接是否正在使用中,也可以用于判斷某個(gè)主機(jī)服務(wù)是否可以使用。

HomeKit

iOS8引入,智能家居控制

HealthKit

iOS8引入的,基于設(shè)備管理用戶健康數(shù)據(jù)

PassKit

pass憑證相關(guān)接口

四.Core OS

Core OS層的底層功能是很多其他技術(shù)的構(gòu)建基礎(chǔ)。通常情況下,這些功能不會(huì)直接應(yīng)用于應(yīng)用程序,而是應(yīng)用于其他框架。但是,在直接處理安全事務(wù)或和某個(gè)外設(shè)通訊的時(shí)候,則必須要應(yīng)用到該層的框架。

Core OS層包含的框架

Security 框架

iOS系統(tǒng)不但提供內(nèi)建的安全功能,還提供Security框架(Security.framework)用于保證應(yīng)用程序所管理之?dāng)?shù)據(jù)的安全。該框架提供的接口可用于管理證書、公鑰、私鑰以及信任策略。它支持生成加密的安全偽隨機(jī)數(shù)。同時(shí),它也支持對(duì)證書和Keychain密鑰進(jìn)行保存,是用戶敏感數(shù)據(jù)的安全倉庫。

CommonCrypto接口另外還支持對(duì)稱加密、HMAC以及Digests。實(shí)際上,Digests的功能實(shí)和OpenSSL庫常用的功能兼容,但是iOS無法使用OpenSSL庫。

在 iOS 3.0及其后續(xù)版本的系統(tǒng)中, 您可以讓所創(chuàng)建的多個(gè)應(yīng)用程序共享某些Keychain項(xiàng),這樣可以讓相同套件內(nèi)的應(yīng)用程序的互用更流暢。舉個(gè)例子,您可以在應(yīng)用程序間共享用戶密碼和及其他元素。通過這種方法,您就不需要在每個(gè)應(yīng)用程序單獨(dú)對(duì)用戶作出提示。如應(yīng)用程序需要共享數(shù)據(jù),則每個(gè)應(yīng)用程序的Xcode工程必須配備恰當(dāng)?shù)馁Y格。

CoreBlueTooth

底層藍(lán)牙編程實(shí)現(xiàn)模塊

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

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

  • 6轉(zhuǎn)載-->>IOS框架和服務(wù) 在iOS中框架是一個(gè)目錄,包含了共享資源庫,用于訪問該資源庫中儲(chǔ)存的代碼的頭文件,...
    李小六_閱讀 3,845評(píng)論 2 24
  • 在iOS中框架是一個(gè)目錄,包含了共享資源庫,用于訪問該資源庫中儲(chǔ)存的代碼的頭文件,以及圖像、聲音文件等其他資源。共...
    wo不懂閱讀 1,605評(píng)論 3 3
  • 在iOS中框架是一個(gè)目錄,包含了共享資源庫,用于訪問該資源庫中儲(chǔ)存的代碼的頭文件,以及圖像、聲音文件等其他資源。共...
    ch123閱讀 1,845評(píng)論 0 1
  • 有的人還年輕,卻已經(jīng)老了;有的人老了,卻還年輕。 她快60歲了,可認(rèn)識(shí)她的人都認(rèn)為,說她像一個(gè)二十多歲的小姑娘...
    大哥大哥你好帥閱讀 1,452評(píng)論 1 7
  • 何為歡喜 什么是喜歡 大概是心之所向吧 早晨 迷蒙 中午 熱烈 傍晚 虔誠 暗夜 深沉 從早到晚 ...
    張教頭閱讀 479評(píng)論 1 1

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