ios的四個核心部分介紹

ios四個核心部分

ios的四個核心部分介紹

1.Cocoa Touch
Cocoa Touch層的關鍵技術。
(1)多任務
      iOS SDK 4.0以及以後的SDK構建的程序(且運行在iOS 4.0和以後版本的設備上),用戶按下Home按鈕的時候程序不會結束;它們會挪到後臺運行。UIKit幫助實現的多任務支持,讓程序可以平滑切換到後臺,或者切換回來。
爲了節省電力,大多數程序進入後臺後馬上就會被系統暫停。暫停的程序還在內存裏,但是不執行任何代碼。這樣程序需要重新激活的時候可以快速恢復,但是同時不浪費任何電力。然而,在如下原因下,程序也可以在後臺下運行:
程序可以申請有限的時間完成一些重要的任務。
程序可以聲明支持某種特定的服務,需要週期的後臺運行時間。
程序可以使用本地通知在指定的時間給用戶發信息,不管程序是否在運行。
不管你的程序在後臺是被暫停還是繼續運行,支持多任務都不需要你做什麼額外的事情。系統會在切換到後臺或者切換回來的時候,通知程序。在這個時刻,程序可以直接執行一些重要的任務,例如保存用戶數據等。
 
(2)打印
    從iOS 4.2開始,UIKit引入了打印支持,允許程序把內容通過無線網路發送給附近的打印機。關於打印,大部分重體力勞動由UIKit承擔。它管理打印接口,和你的程序協作渲染打印的內容,管理打印機裏打印作業的計劃和執行。
程序提交的打印作業會被傳遞給打印系統,它管理真正的打印流程。設備上所有程序的打印作業會被排成隊列,先入先出的打印。用戶可以從打印中心程序看到打印作業的狀態。所有這些打印細節都由系統自動處理。
注意:僅有支持多任務的設備才支持無線打印。你的程序可使用 UIPrintInteractionController對象來檢測設備是否支持無線打印。
 
(3)數據保護
     iOS4.0起引入了數據保護功能,需要處理敏感用戶數據的應用程序可以使用某些設備 內建的加密功能(某些設備不支持)。當程序指定某文件受保護的時候,系統就會把這個文件用加密的格式保存起來。設備鎖定的時候,你的程序和潛在入侵者都無法訪問這些數據。然而,當設備由用戶解鎖後,會生成一個密鑰讓你的程序訪問文件。
要實現良好的數據保護,需要仔細考慮如何創建和管理你需要保護的數據。應用程序必須在數據創建時確保數據安全,並適應設備上鎖與否帶來的文件可訪問性的變化。
 
(4)蘋果推通知服務
   從iOS 3.0開始,蘋果發佈了蘋果推通知服務,這一服務提供了一種機制,即使你的程序已經退出,仍舊可以發送一些新信息給用戶。使用這種服務,你可以在任何時候,推送文本通知給用戶的設備,可以包含程序圖標作爲標識,發出提示聲音。這些消息提示用戶,應該打開你的程序接收查看相關的信息。
從設計的角度看,要讓iOS程序可以發送推通知,需要兩部分的工作。首先,程序必須請求通知的發送,且在送達的時候能夠處理通知數據。然後,你需要提供一個服務端流程去生成這些通知。這一流程發生在你自己的服務器上,和蘋果的推通知服務一起觸發通知。
 
(5)本地通知
    從iOS 4.0開始,蘋果推出了本地通知,作爲推通知機制的補充,應用程序使用這一方法可以在本地創建通知信息,而不用依賴一個外部的服務器。運行在後臺的程序,可以在重要時間發生的時候利用本地通知提醒用戶注意。例如,一個運行在後臺的導航程序可以利用本地通知,提示用戶該轉彎了。程序還可以預定在未來的某個時刻發送本地通知,這種通知即使程序已經被終止也是可以被髮送的。
本地通知的優勢在於它獨立與你的程序。一旦通知被預定,系統就會來管理它的發送。在消息發送的時候,甚至不需要應用程序還在運行。
 
(6)手勢識別器
    從iOS 3.2起,引入了手勢識別器,你可以把它附加到view上,然後用它們檢測通用的手勢,如劃過或者捏合。附加手勢識別器到view後,設置手勢發生時執行什麼操作。手勢識別器會跟蹤原始的觸摸事件,使用系統預置的算法判斷目前的手勢。沒有手勢識別器,你就必須自己做這些計算,很多都相當的複雜。
UIKit包含了UIGestureRecognizer 類,定義了所有手勢識別器的標準行爲。你可以定義自己的定製手勢識別器子類,或者是使用UIKit提供的手勢識別器子類來處理如下的標準手勢:
點擊(任何次數)
捏合縮放
平移或者拖動
劃過(任何方向)
旋轉(手指分別向相反方向)
長按
 
(7)文件共享支持
    文件共享支持是從iOS 3.2開始引入的,利用它程序可以把用戶的數據文件開發給iTunes 9.1以及以後版本。程序一旦聲明支持文件共享,那麼它的/Documents目錄下的文件就會開放給用戶。用戶可以用iTunes放文件進去,或者取出來。這一特性並不允許你的程序和同一設備裏面的其他程序共享文件;那種行爲需要用剪貼板,或者文本交互控制對象(UIDocumentInteractionController)來實現。
要打開文件共享支持,請:
在程序的Info.plist文件內加入鍵UIFileSharingEnabled,值設置爲YES。
把你要共享的文件放在程序的Documents目錄內。
設備插到用戶電腦時,iTunes在選定設備的程序頁下面顯示文件共享塊。
用戶可以在桌面上增加和刪除文件。
支持文件共享的程序必須能夠識別放到Documents目錄內的文件,並正確的處理它們。例如,程序應該用自己的界面顯示新出現的文件,而不是把這些文件列在目錄裏,問用戶該如何處理這些文件。
 
(8)點對點對戰服務
    從iOS 3.0起引入的Game Kit框架提供了基於藍牙的點對點對戰功能。你可以使用點對點連接和附近的設備建立通訊,是實現很多多人遊戲中需要的特性。雖然這主要是用於遊戲的,但是也可以用於其他類型的程序中。
更多關於如何在程序中使用點對點對戰功能的信息,參標準系統View Controller
Cocoa Touch層的很多框架提供了用來展現標準系統接口的View Controller。你應該儘量使用這些View Controller,以保持用戶體驗的一致性。任何時候你需要做如下操作的時候,你都應該用對應框架提供的View Controller:
顯示和編輯聯繫人信息 - 使用Address Book UI框架提供的View Controller。
創建和編輯日曆事件 - 使用Event Kit UI框架提供的View Controller。
編寫email或者短消息 - 使用Message UI框架提供的View Controller。
打開或者預覽文件的內容 - 使用UIKit框架裏的UIDocumentInteractionController類。
拍攝一張照片,或者從用戶的照片庫裏面選擇一張照片 - 使用UIKit框架內的UIImagePickerController類。
拍攝一段視頻 - 使用UIKit框架內的UIImagePickerController類。
 
(9)外部顯示支持
       iOS 3.2開始,引入了外部顯示支持,允許一些iOS設備可以通過支持的纜線連接到外部的顯示器上。連接時,程序可以用對應的屏幕來顯示內容。屏幕的信息,包括它支持的分辨率,都可以用UIKit框架提供的接口訪問。你也可以用這個框架來把程序的窗口連接到一個屏幕,或另外一個屏幕。
 
(10)Cocoa Touch框架
   下面的章節介紹Cocoa Touch層的框架和它們提供的服務。
  *Address Book UI框架
     Address Book UI框架(AddressBookUI.framework)是一個Objective-C的編程接口,用來顯示創建新聯繫人、編輯和選擇已有聯繫人的標準系統界面。這個框架讓你可以輕鬆的在程序裏面顯示聯繫人信息,同時確保你的程序使用和其他程序一樣的接口,保持了平臺的一致性。
 
  *Event Kit UI框架
   從iOS 4.0開始,引入了Event Kit UI框架(EventKitUI.framework)提供了用來顯示和編輯事件的view controller。這個框架基於Event Kit框架提供的事件相關數據結構,參見Event Kit框架。
 
   *Game Kit框架
      iOS 3.0引入了Game Kit框架(GameKit.framework)支持在程序中進行點對點的網絡通訊。尤其是這個框架支持了點對點的連接和遊戲內的語音通話功能。雖然這些功能主要是用於多人對戰網絡遊戲,但是也可以在非遊戲程序中使用。這個框架提供的網絡功能是構建在Bonjour之上幾個簡單的類實現的。這些類抽象了很多網絡細節,讓沒有網絡編程經驗的開發者也可以輕鬆地在程序中加入網路功能。
 
   *iAd框架
       iOS 4.0引入了iAd框架(iAd.framework)支持程序中顯示banner廣告。廣告由標準的view構成,你可以把它們插入到你的用戶界面中,恰當的時候顯示。View本身和蘋果的廣告服務通訊,處理一切載入和展現廣告內容以及響應點擊等工作。
 
   *Map Kit框架
       iOS 3.0引入了Map Kit框架(MapKit.framework)提供了一個可以嵌入到程序裏的地圖接口。基於該接口的行爲,它提供了可縮放的地圖view,可標記定製的信息。你可以把它嵌入在程序的view裏面,編程設置地圖的屬性,保存當前顯示的地圖區域和用戶的位置。你還可以定義定製標記,或者使用標準標記(大頭針標記),突出地圖上的區域,顯示額外的信息。
從iOS 4.0開始,這個框架加入可拖動標記和定製覆蓋對象的功能。可拖動標記令你可以移動一個已經被放置到地圖上的標記,編程,也可以通過用戶行爲。覆蓋對象提供了創建比標記點更復雜的地圖標記的能力。你可以使用覆蓋對象在地圖上來放置信息,例如公交路線,選區圖,停車區域,天氣信息(如雷達數據)。
 
   *Message UI框架
      iOS 3.0引入了Message UI框架(MessageUI.framewok)提供了編寫和查詢發建箱消息的能力。編寫支持包含了一個可以在程序中顯示的view controller接口。你可以在接口中填寫你要發送信息的內容。你可以設置收信人,主題和內容,以及附件。用戶可以選擇信息的優先級。選定後,信息就會在用戶的發件箱裏面排隊等待發送。
iOS 4.0和以後的系統,這個框架開始支持用來編寫短消息的view controller。你可以使用這種view controller來創建和編輯短消息,而不用離開程序。和郵件編寫接口一樣,這個接口讓用戶選擇發送前是否編輯一下。
 
2.Media
Media層提供了圖片,音樂,影片等多媒體功能。圖像分爲2D圖像和3D圖像, 前者由Quartz2D來支持,後者則是用OpenglES.與音樂對應的模組是Core Audio和OpenAL, Media Player 實現了影片的播放, 而最後還提供了Core Animation來對強大動畫的支持。具體介紹如下:
(1)圖像技術(Graphics Technologies)
   高質量圖像是所有iPhone應用的一個重要的組成部分。任何時候,開發者可以採用UIKit 框架中已有的視圖和功能以及預定義的圖像來開發iPhone應用。然而,當UIKit 框架中的視圖和功能不能滿足需求時,開發者可以應用下面描述的技術和方法來製作視圖。
   ① Quartz。核心圖像框架(CoreGraphics.framework)包含了Quartz 2D畫圖API,Quartz與在Mac OS中採用的矢量圖畫引擎是一樣先進的。Quartz支持基於路徑(Path-based)畫圖、抗混淆(Anti-aliased)重載、梯度 (Gradients)、圖像(Images)、顏色(Colors)、座標空間轉換(Coordinate-space Transformations)、pdf文檔創建、顯示和解析。雖然API是基於C語言的,它採用基於對象的抽象表徵基礎畫圖對象,使得圖像內容易於保存和複用。
   ② 核心動畫(Core Animation)。Quartz核心框架(QuartzCore.framework)包含CoreAnimation接口,Core Animation是一種高級動畫和合成技術,它用優化的重載路徑(Rendering Path)實現複雜的動畫和虛擬效果。它用一種高層的Objective-C接口配置動畫和效果,然後重載在硬件上獲得較好的性能。Core Animation集成到iPhone OS 的許多部分,包括UIKit類如UIView,提供許多標準系統行爲的動畫。開發者也能利用這個框架中的Objective-C接口創建客戶化的動畫。
   ③ OpenGL ES。OpenGL ES框架(OpenGLES.framework)符合OpenGL ES v1.1規範,它提供了一種繪畫2D和3D內容的工具。OpenGL ES 框架是基於C語言的框架,與硬件設備緊密相關,爲全屏遊戲類應用提供高幀率(high frame rates)。開發者總是要使用OpenGL框架的EAGL接口,EAGL接口是OpenGL ES框架的一部分,它提供了應用的OpenGL ES畫圖代碼和本地窗口對象的接口。
 (2)音頻技術(Audio Technologies)
     iPhone OS的音頻技術爲用戶提供了豐富的音頻體驗。它包括音頻回放,高質量的錄音和觸發設備的振動功能等。iPhone OS的音頻技術支持如下音頻格式: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是一個基於C語言的接口,並支持立體聲(Stereo Audio)。開發能採用iPhone OS 的Core Audio框架在iPhone 應用中產生、錄製、混合和播放音頻。開發者也能通過核心音頻訪問手機設備的振動功能。
核心音頻框架:
框架(Framework)            服務(Service)
CoreAudio.framework         定義核心音頻的音頻數據類型
AudioUnit.framework            提供音頻和流媒體文件的回放和錄製,並且管理音
                                             頻文件和播放提示聲音
AudioToolbox.framework    提供使用內置音頻單元服務,音頻處理模塊
     ② OpenAL。iPhone OS 也支持開放音頻庫(Open Audio Library, OpenAL)。OpenAL是一個跨平臺的標準,它能傳遞位置音頻(Positional Audio)。開發者能應用OpenAL在需要位置音頻輸出的遊戲或其他應用中實現高性能、高質量的音頻。由於OpenAL是一個跨平臺的標準,採用OpenAL的代碼模塊可以平滑地移植到其他平臺。
(3)視頻技術(Video Technologies)
    iPhone OS通過媒體播放框架(MediaPlayer.framework)支持全屏視頻回放。媒體播放框架支持的視頻文件格式包括.mov, .mp4,.m4v和.3gp,並應用如下壓縮標準:
    ① H.264 Baseline Profile Level 3.0 video,在30 f/s 的情況下分辨率達到640×480像素。注意:不支持B frames;
    ② MPEG4規範的視頻部分;
    ③ 衆多的音頻格式,包含在音頻技術的列表裏,如AAC、Apple Lossless (ALAC)、A-law、IMA/ADPCM(IMA4)、線性PCM、μ-law和Core Audio等。     
 
3.Core Services
Core Services在Core OS基礎上提供了更爲豐富的功能, 它包含了Foundation.Framework和Core Foundation.Framework, 之所以叫Foundation ,就是因爲它提供了一系列處理字串,排列,組合,日曆,時間等等的基本功能。Foundation是屬於Objective-C的API,Core Fundation是屬於C的API。另外Core servieces還提供了其他的功能,比如:
    Security, Core Location, SQLite, 和Address Book. 其中Security是用來處理認證,密碼管理,按安全性管理的; Core Location是用來處理GPS定位的;SQLLite是輕量級的數據庫,而AddressBook則用來處理電話薄資料的。下面是具體介紹:
(1)電話本
    電話本框架(AddressBook.framework)提供了保存在手機設備中的電話本編程接口。開發者能使用該框架訪問和修改存儲在用戶聯繫 人數據庫裏的記錄。例如,一個聊天程序可以使用該框架獲得可能的聯繫人列表,啓動聊天的進程(Process),並在視圖上顯示這些聯繫人信息等。
(2)核心基礎框架
     核心基礎框架(CoreFoundation.framework)是基於C語言的接口集,提供iPhone應用的基本數據管理和服務功能。該框架 支持如下功能:
        Collection數據類型(Arrays、 Sets等);
        Bundles;
        字符串管理;
        日期和時間管理;
        原始數據塊管理;
        首選項管理;
        URL和Stream操作;
        線程和運行循環(Run Loops);
        端口和Socket通信。
     核心基礎框架與基礎框架是緊密相關的,它們爲相同的基本功能提供了Objective-C接口。如果開發者混合使用Foundation Objects 和Core Foundation類型,就能充分利用存在兩個框架中的"toll-free bridging"。toll-free bridging意味着開發者能使用這兩個框架中的任何一個的核心基礎和基礎類型,例如Collection和字符串類型等。每個框架中的類和數據類型的 描述註明該對象是否支持toll-free bridged。如果是,它與哪個對象橋接(toll-free bridged)。
(3)CFNetwork
    CFNetwork框架(CFNetwork.framework)是一組高性能的C語言接口集,提供網絡協議的面向對象的抽象。開發者可以使用 CFNetwork框架操作協議棧,並且可以訪問低層的結構如BSD Sockets等。同時,開發者也能簡化與FTP和HTTP服務器的通信,或解析DNS等任務。使用CFNetwork框架實現的任務如下所示:
          BSD Sockets;
          利用SSL或TLS創建加密連接;
          解析DNS Hosts;
          解析HTTP協議,鑑別HTTP和HTTPS服務器;
          在FTP服務器工作;
          發佈、解析和瀏覽Bonjour服務。
(4)核心位置框架(Core Location Framework)
     核心位置框架(CoreLocation.framework)主要獲得手機設備當前的經緯度,核心位置框架利用附近的GPS、蜂窩基站或Wi- Fi信號信息測量用戶的當前位置。iPhone地圖應用使用這個功能在地圖上顯示用戶的當前位置。開發者能融合這個技術到自己的應用中,給用戶提供一些位 置信息服務。例如可以提供一個服務:基於用戶的當前位置,查找附近的餐館、商店或設備等。
(5)安全框架(Security Framework)
     iPhone OS除了內置的安全特性外,還提供了外部安全框架(Security.framework),從而確保應用數據的安全性。該框架提供了管理證書、公鑰/私 鑰對和信任策略等的接口。它支持產生加密安全的僞隨機數,也支持保存在密鑰鏈的證書和密鑰。對於用戶敏感的數據,它是安全的知識庫(Secure Repository)。CommonCrypto接口也支持對稱加密、HMAC和數據摘要。在iPhone OS裏沒有OpenSSL庫,但是數據摘要提供的功能在本質上與OpenSSL庫提供的功能是一致的。
(6)SQLite
    iPhone應用中可以嵌入一個小型SQL數據庫SQLite,而不需要在遠端運行另一個數據庫服務器。開發者可以創建本地數據庫文件,並管理這些 文件中的表格和記錄。數據庫SQLite爲通用的目的而設計,但仍可以優化爲快速訪問數據庫記錄。訪問數據庫SQLite的頭文件位 於<iPhoneSDK>/usr/include/sqlite3.h,其中<iPhoneSDK>是SDK安裝的目標路徑。
(7)支持XML
    基礎框架提供NSXMLParser類,解析XML文檔元素。libXML2庫提供操作XML內容的功能,這個開放源代碼的庫可以快速解析和編輯 XML數據,並且轉換XML內容到HTML。訪問libXML2庫的頭文件位於目錄<iPhoneSDK>/usr/include /libxml2/,其中<iPhoneSDK>是SDK安裝的目標目錄。
 
4.Core OS


核心服務層爲所有應用提供基礎系統服務,即使不直接使用這些服務,也應該瞭解內置在該系統中的技術。


(1)電話本


電話本框架(AddressBook.framework)提供了保存在手機設備中的電話本編程接口。開發者能使用該框架訪問和修改存儲在用戶聯繫人數據庫裏的記錄。例如,一個聊天程序可以使用該框架獲得可能的聯繫人列表,啓動聊天的進程(Process),並在視圖上顯示這些聯繫人信息等。


(2)核心基礎框架


核心基礎框架(CoreFoundation.framework)是基於C語言的接口集,提供iPhone應用的基本數據管理和服務功能。該框架支持如下功能:


Collection數據類型(Arrays、 Sets等);


Bundles;


字符串管理;


日期和時間管理;


原始數據塊管理;


首選項管理;


URL和Stream操作;


線程和運行循環(Run Loops);


端口和Socket通信。


核心基礎框架與基礎框架是緊密相關的,它們爲相同的基本功能提供了Objective-C接口。如果開發者混合使用Foundation Objects 和Core Foundation類型,就能充分利用存在兩個框架中的"toll-free bridging"。toll-free bridging意味着開發者能使用這兩個框架中的任何一個的核心基礎和基礎類型,例如Collection和字符串類型等。每個框架中的類和數據類型的描述註明該對象是否支持toll-free bridged。如果是,它與哪個對象橋接(toll-free bridged)。


(3)CFNetwork


CFNetwork框架(CFNetwork.framework)是一組高性能的C語言接口集,提供網絡協議的面向對象的抽象。開發者可以使用 CFNetwork框架操作協議棧,並且可以訪問低層的結構如BSD Sockets等。同時,開發者也能簡化與FTP和HTTP服務器的通信,或解析DNS等任務。使用CFNetwork框架實現的任務如下所示:


BSD Sockets;


利用SSL或TLS創建加密連接;


解析DNS Hosts;


解析HTTP協議,鑑別HTTP和HTTPS服務器;


在FTP服務器工作;


發佈、解析和瀏覽Bonjour服務。


(4)核心位置框架(Core Location Framework)


核心位置框架(CoreLocation.framework)主要獲得手機設備當前的經緯度,核心位置框架利用附近的GPS、蜂窩基站或Wi- Fi信號信息測量用戶的當前位置。iPhone地圖應用使用這個功能在地圖上顯示用戶的當前位置。開發者能融合這個技術到自己的應用中,給用戶提供一些位置信息服務。例如可以提供一個服務:基於用戶的當前位置,查找附近的餐館、商店或設備等。


(5)安全框架(Security Framework)


iPhone OS除了內置的安全特性外,還提供了外部安全框架(Security.framework),從而確保應用數據的安全性。該框架提供了管理證書、公鑰/私鑰對和信任策略等的接口。它支持產生加密安全的僞隨機數,也支持保存在密鑰鏈的證書和密鑰。對於用戶敏感的數據,它是安全的知識庫(Secure Repository)。


CommonCrypto接口也支持對稱加密、HMAC和數據摘要。在iPhone OS裏沒有OpenSSL庫,但是數據摘要提供的功能在本質上與OpenSSL庫提供的功能是一致的。


(6)SQLite


iPhone應用中可以嵌入一個小型SQL數據庫SQLite,而不需要在遠端運行另一個數據庫服務器。開發者可以創建本地數據庫文件,並管理這些文件中的表格和記錄。數據庫SQLite爲通用的目的而設計,但仍可以優化爲快速訪問數據庫記錄。訪問數據庫SQLite的頭文件位於<iPhoneSDK>/usr/include/sqlite3.h,其中<iPhoneSDK>是SDK安裝的目標路徑。


(7)支持XML
基礎框架提供NSXMLParser類,解析XML文檔元素。libXML2庫提供操作XML內容的功能,這個開放源代碼的庫可以快速解析和編輯 XML數據,並且轉換XML內容到HTML。訪問libXML2庫的頭文件位於目錄<iPhoneSDK>/usr/include /libxml2/,其中<iPhoneSDK>是SDK安裝的目標目錄。

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