Android 安卓系統架構介紹
從上圖中可以看出,Android系統架構為四層結構,從上層到下層分別是應用程序層、應用程序框架層、系統運行庫層以及Linux內核層,分別介紹如下:
1)應用程序層 Android平臺不僅僅是操作系統,也包含了許多應用程序,諸如SMS短信客戶端程序、電話撥號程序、圖片瀏覽器、Web瀏覽器等應用程序。這些應用程序都是 用Java語言編寫的,並且這些應用程序都是可以被開發人員開發的其他應用程序所替換,這點不同於其他手機操作系統固化在系統內部的系統軟件,更加靈活和個性化。
2)應用程序框架層
應用程序框架層是我們從事Android開發的基礎,很多核心應用程序也是通過這一層來實現其核心功能的,該層簡化了組件的重用,開發人員可以直接使用其提 供的組件來進行快速的應用程序開發,也可以通過繼承而實現個性化的拓展。
a) Activity Manager(活動管理器)
管理各個應用程序生命周期以及通常的導航回退功能
b) Window Manager(窗口管理器)
管理所有的窗口程序
c) Content Provider(內容提供器)使得不同應用程序之間存取或者分享數據
d) View System(視圖系統)
構建應用程序的基本組件
e) Notification Manager(通告管理器)使得應用程序可以在狀態欄中顯示自定義的提示信息
f) Package Manager(包管理器)Android系統內的程序管理
g)Telephony Manager(電話管理器) 管理所有的移動設備功能 h)Resource Manager(資源管理器)提供應用程序使用的各種非代碼資源,如本地化字符串、圖片、布局文件、顏色文件等
i)Location Manager(位置管理器) 提供位置服務 j)XMPP Service(XMPP服務)3)系統運行庫層
從圖中可以看出,系統運行庫層可以分成兩部分,分別是系統庫和Android運行時,分別介紹如下:
a)系統庫 系統庫是應用程序框架的支撐,是連接應用程序框架層與Linux內核層的重要紐帶。其主要分為如下幾個: Surface Manager: 執行多個應用程序時候,負責管理顯示與存取操作間的互動,另外也負責2D繪圖與3D繪圖進行顯示合成。 ? Media Framework: 多媒體庫,基於PacketVideo OpenCore;支持多種常用的音頻、視頻格式錄制和回放,編碼格式包括MPEG4、MP3、H.264、AAC、ARM。 SQLite: 小型的關系型數據庫引擎 OpenGL|ES: 根據OpenGL ES 1.0API標準實現的3D繪圖函數庫 FreeType: 提供點陣字與向量字的描繪與顯示 WebKit: 一套網頁瀏覽器的軟件引擎 SGL: 底層的2D圖形渲染引擎 SSL: 在Andorid上通信過程中實現握手 Libc: 從BSD繼承來的標準C系統函數庫,專門為基於embedded linux的設備定制b)Android運行時
Android應用程序時采用Java語言編寫,程序在Android運行時中執行,其運行時分為核心庫和Dalvik虛擬機兩部分。 核心庫 核心庫提供了Java語言API中的大多數功能,同時也包含了Android的一些核心API,如android.os、android.net、android.media等等。 Dalvik虛擬機Android程序不同於J2me程序,每個Android應用程序都有一個專有的進程,並且不是多個程序運行在一個虛擬機中,而是每個Android程序都有一 個Dalivik虛擬機的實例,並在該實例中執行。Dalvik虛擬機是一種基於寄存器的Java虛擬機,而不是傳統的基於棧的虛擬機,並進行了內存資源使用的優化 以及支持多個虛擬機的特點。需要註意的是,不同於J2me,Android程序在虛擬機中執行的並非編譯後的字節碼,而是通過轉換工具dx將Java字節碼轉成dex格 式的中間碼。
4)Linux內核層
Android是基於Linux2.6內核,其核心系統服務如安全性、內存管理、進程管理、網路協議以及驅動模型都依賴於Linux內核。Android 安卓系統架構介紹