1. 程式人生 > >iOS 系統層級

iOS 系統層級

全屏 創建 graphics 語言 性能 AS 內容 library 包含

前言

  • iOS 是一個基於 UNIX 的操作系統,並且它大量借鑒了 macOS 的內核部分,iOS 針對移動設備對電池等硬件進行了系統的優化,但它仍可被看成是一個 UNIX 系統。

1、iOS 系統層級

  • iOS 系統采用層的概念來劃分系統的技術實現,每一層都由各自的框架組成,iOS 由下至上可以分為四層:核心 OS、核心服務層、媒體層和 Cocoa Touch 層。

    層級 主要框架
    Cocoa Touch UIKit 等
    Media Core Graphics 、OpenGl ES、Core Animation 等
    Core Services Core Data、Foundation 等
    Core OS Accelerate Framework、External Accessory Framework、Security Framework、System 等
  • 從圖中可以看到,要想編寫成型的產品,需要的不僅僅是語言本身,同時許多庫需要協同使用。語言只是產品開發的“膠水”,而框架和上面的這些庫才是 iOS 產品的骨架。Swift 語言能夠無縫的調用所有庫。

1.1 Core OS --- 核心 OS 層

  • 核心 OS 層包含 Accelerate Framework、External Accessory Framework、Security Framework、System 等幾個框架,基本都是基於 C 語言的接口。

  • 核心 OS 層是最接近於操作系統的一層,在這個層次上,主要實現硬件以及操作系統接口封裝。

  • 核心 OS 層通常進行線程操作、復雜的數學運算、硬件加密等工作。

1.2 Core Services --- 核心服務層

  • 核心服務層包含 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 語言的接口。

  • Foundation 框架提供了字符串、數值的管理、容器及枚舉、分布式計算、事件循環、URL 與數據流操作、國際化,以及其他與圖形用戶界面沒有直接關系的功能。其中類和常數常用 “NS” 前綴來標誌。

  • Core Data 框架主要在數據模型、數據存儲方面發揮作用。在程序運行的時候,Core Data 框架會創建並管理數據模型的實例,同時還對外提供數據模型訪問接口。除此之外,Core Data 還可以將對象數據存儲在 SQLite 數據庫以獲得性能優化、管理 undo/redo(撤銷/重做)等操作,還支持在內存中對數據進行歸類、過濾及組織數據。

1.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 等等。

  • 媒體層包含圖形技術(包含動畫技術)、音頻技術和視頻技術,可以使用這層的技術更快速的創建高級的圖形和動畫,方便的獲得音頻、視頻的支持。

    • 1)圖形技術:是 iOS 應用程序的重要組成部分。創建應用程序最簡單、最有效的方法是使用事先渲染過的圖片,搭配上標準視圖以及 UIKit 框架的控件,然後把繪制任務交給系統來執行。

      • Core Graphics :也被稱為 Quartz,用於處理本地 2D 向量渲染和圖片渲染。
      • Core Animation :Quartz Core 框架的一部分,為動畫視圖和其他內容提供更高級別支持。
      • OpenGl ES :為使用硬件加速接口的 2D 和 3D 渲染提供支持。
      • Core Text :提供一個精密的文本布局和渲染引擎。
      • Image I/O :提供讀取及編寫大多數圖形格式的接口,導入和導出圖像數據和圖像元數據。
      • Assets Library framework :資產庫框架,用於訪問用戶照片庫中的照片和視頻。
    • 2)音頻技術:iOS 音頻技術可以用來播放或錄制高質量的音頻,也可以用於觸發設備的震動功能。

      • 媒體播放器框架:是可以拿來即用的播放器。
      • AV Foundation :提供用於管理音頻的播放或錄制的接口。
      • Core Audio :可以使用此框架的接口播放系統的警報聲音、觸發的震動功能、管理多聲道的緩沖和播放、對音頻內容進行流化處理。
    • 3)視頻技術:可用於播放應用程序包含的電影文件以及來自網絡的數據流內容。如果設備具有合適的視頻硬件,這些技術也可以用於捕捉視頻,並可將捕捉到的視頻集成到應用程序。

      • 媒體播放器框架:可用於播放應用程序中全屏或部分屏的電影。
      • AV Foundation :可以對電影的捕捉和播放進行管理。
      • Core Media :對較高級框架使用的底層類型進行描述,同時也提供一些底層接口,用於對媒體進行處理。

1.4 Cocoa Touch --- Cocoa Touch 層

  • 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 的接口。

  • Cocoa Touch 層包含了用於 iOS 應用開發的圖形界面構建的類。其中所有的類,都以 “UI” 為前綴。

  • Cocoa 是蘋果開發體系的統稱,Cocoa 包含一些主要的 OC 對象庫,我們稱這些對象庫為框架。框架是由許多類、方法、函數和文檔按照一定的邏輯組織起來的集合,以使研發程序更容易。為所有程序開發奠定基礎的框架稱為 Foundation 框架。

    • 術語 Cocoa:是指 Foundation 、Core Data 和 AppKit(Application Kit) 框架框架。用於 macOS 設備上的應用程序開發。
    • 術語 Cocoa Touch:是指 Foundation 、Core Data 和 UIKit 框架。用於 iOS 設備上的應用程序開發。

iOS 系統層級