Android 系統架構
阿新 • • 發佈:2018-12-18
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專用的驅動,系統的安全性,記憶體管理、程序管理、網路協議棧和驅動模型等都依賴於該核心。