1. 程式人生 > >Android 系統架構

Android 系統架構

Android系統架構分為五層,從上到下依次是應用層、應用框架層、系統執行庫層、硬體抽象層和Linux核心層。

  • 應用層(System Apps):系統內建的應用程式以及非系統級的應用程式都屬於應用層,負責與使用者進行直接互動,通常都是用Java進行開發的;
  • 應用框架層(Java API Framework):應用框架層為開發人員提供了開發應用程式所需要的API,我們平常開發應用程式都是呼叫這一層所提供的API,當然也包括系統應用。這一層是由java程式碼編寫的,可以稱為Java Framework。下面來看這一層所提供的主要元件:
名稱  功能描述
Activity Manager(活動管理器)  管理各個應用程式生命週期,以及常用的導航回退功能
Location Manager(位置管理器)  提供地理位置及定位功能服務
Package Manager(包管理器)  管理所有安裝在Android系統中的應用程式
Notification Manager(通知管理器)  使得應用程式可以在狀態列中顯示自定義的提示資訊
Resource Manager(資源管理器)  提供應用程式使用的各種非程式碼資源,如本地化字串、圖片、佈局檔案、顏色檔案等
Telephony Manager(電話管理器)  管理所有的移動裝置功能 
Window Manager(視窗管理器)  管理所有開啟的視窗程式
Content Provider(內容提供器)  使得不同應用程式之間可以共享資料
View System(檢視系統)  構建應用程式的基本元件
  • 系統執行庫層(Native):兩個部分:C/C++程式庫和Android執行時庫

C/C++程式庫:

名稱  功能描述
OpenGL  ES 3D繪圖函式庫
Libc  從BSD繼承來的標準C系統函式庫,專門為基於嵌入式Linux的裝置定製
Media Framework  多媒體庫,支援多種常用的音訊、視訊格式錄製和回放
SQLite  輕型的關係型資料庫引擎
SGL  底層的2D圖形渲染引擎
SSL  安全套接層,是一種為網路通訊提供安全及資料完整性的安全協議

FreeType

 可移植的字型引擎,它提供統一的介面來訪問多種字型格式檔案

Android執行時庫:分為核心庫和ART(Anroid5.0系統之後,Dalvik虛擬機器被ART取代)

  • 硬體抽象層(HAL):位於作業系統核心與硬體電路之間的介面層,其目的在於將硬體抽象化,為了保護硬體廠商的智慧財產權,它隱藏了特定平臺的硬體介面細節,為作業系統提供虛擬硬體平臺,使其具有硬體無關性,可在多種平臺上進行移植。從軟硬體測試的角度來看,軟硬體的測試工作都可分別基於硬體抽象層來完成,使得軟硬測試工作的並行進行成為可能。通俗來講,就是將控制硬體的動作放在硬體抽象層中。
  • LInux核心層:Android的核心繫統服務基於Linux核心,在此基礎上添加了部分Android專用的驅動,系統的安全性,記憶體管理、程序管理、網路協議棧和驅動模型等都依賴於該核心。