標籤:
iOS技術層探索
Apple是以一系列層的方式來描述iOS實現的技術,其中每層都可以都可以在應用程式中使用的不同架構組成。大家最常接觸的Cocoa Touch層就在最上面。
Figure 1: iOS技術層
下面對於每層進行簡單的介紹。
1.Cocoa Touch層
Cocoa Touch層由多個架構構成,為應用程式提供核心功能(比如多任務和廣告功能)。這些架構有:
(1)UIkit
負責啟動和結束應用程式,控制介面和多點觸摸事件,並能讓開發人員訪問常見的資料檢視(eg,網頁以及word和Excel文檔等)。除此之外,UIkit還負責了iOS內部眾多的整合功能,比如訪問多媒體庫,照片庫和加速計。
(2)Map Kit
這個架構的作用是讓開發人員能在任何應用程式中添加Apple的Map視圖,從而實現定位,位置標註導航等功能。
(3)Game Kit
不要被名字迷惑了,這個架構並不是只有遊戲才會用到,它進一步提高了iOS應用的網路互動性,提供了建立並使用對等網路p2p(什麼是對等網路?請看維基百科 )的機制,這包括會話發現,仲裁和語音交談。這些功能可以加入到任何應用中。
(4)Message UI/Address Book UI/Event Kit UI
這三個架構可以讓開發人員在任何應用中加入訪問電子郵件,連絡人和日曆時間的功能。
(5)iAd
iAd架構支援在應用程式中加入廣告。它是互動式廣告組件,使用簡單的拖放操作就可以將其加入到軟體中。在應用程式中,開發這者不用管理iAd互動,Apple會完成的。
2.多媒體層
依靠多媒體層中的架構,iOS裝置可以建立複雜的圖形,播放音頻和視頻,甚至產生即時三維圖形(3D)。
(1)AV Foundation
播放和編輯複雜的音頻和視頻,實習進階功能(電影錄製,音軌管理,音頻平移)。
(2)Core Audio
播放和錄製音頻,包含了AudioToolbox架構(播放警報聲或短暫震動)和AudioUint架構(處理聲音)。
(3)Core Image
添加進階映像和視頻處理功能(像什麼Face Service,映像過濾之類的)。
(4)Core Graphics
嚮應用中添加2D繪畫和合成功能。
(5)Core Text
對iPhone螢幕上顯示的文本進行精確的定位和控制。
(6)Image I/O
用於匯入和匯出映像資料和映像中繼資料。
(7)Media Player
讓開發人員能夠用螢幕控制項輕鬆播放電影。
(8)OpenGL ES
是OpenGL架構的子集,適用於嵌入式系統(ES)。用於在應用中建立2D和3D動畫。
(9)Quartz Core
建立利用裝置硬體功能的動畫(?重力感應嗎?)。
3.核心服務層(Core Service)
核心服務層用於訪問較低級的作業系統服務,比如檔案存取,iCloud存取,連網等常見的資料物件類型。
(1)Account
始終線上,簡化了儲存帳號資訊及身分識別驗證的過程。
(2)Address Book
用於直接存取和操作地址簿
(3)CFNetwork
讓開發人員可以直接存取BSD通訊端,HTTP和FTP協議請求及Bonjour。
(4)Core Data
提供了一個基於SQLite的關聯式資料庫模型,可用於將資料繫結到介面對象,從而避免使用代碼進行複雜的資料操作。
(5)Core Foundation
是過程性C語言架構,應該避免使用,因為比Objective-C的效率低。
(6)Foundation
提供了一個Objective-C的封裝器(wrapper),封裝了Core Float的功能。操作字串,數組,字典,管理應用程式喜好設定,線程和本地化。
(7)Event Kit
訪問行事曆資訊。
(8)Core Location
GPS,擷取經度和緯度資訊,還有測量精度。
(9)Core Motion
管理iOS平台中大部分與運動有關的事件,比如加速計和陀螺儀。
(10)Newsstand
建立數位媒體期刊
(11)Pass Kit
(12)Quick Look
實現檔案瀏覽功能
(13) Social
針對流行社交網站的架構。
(14)Store Kit
讓開發人員能夠在應用程式中建立購買事物,而無需推出程式。
(15)System Configuration
確定裝置網路的目前狀態:串連的是哪一個網路啊?哪些裝置可達啊?
4.核心OS層
是由最低級的iOS服務組成。包括線程,複雜的數學運算,硬體配件和加密。很少訪問這些架構。
(1)Accelerate
簡化了計算和大數操作任務,包括數字訊號處理功能。
(2)Core Bluetooch
串連到低功耗藍牙裝置。
(3)External Accessory
開發到配件的介面,這些配件是基座介面或藍芽串連的。
(4)提供了執行加密(加密/解密資料)的函數,包括與iOS密鑰鏈互動以及添加,刪除和修改密鑰項。
(5)System
讓開發人員能夠訪問不受限制的UNIX開發環境中的一些典型工具。
今天就到這裡啦,可能剛開始寫部落格,沒有什麼文筆,我會繼續努力,向前輩們學習,ありがとうございます!
學習記錄:iOS技術層