Android操作系統分層

第一層:Linux操作系統和驅動(Linux kernel):由C語言實現。 

Android核心系統服務依賴於Linux2.6內核,包括:安全性、內存管理、進程管理、網絡協議、驅動模型。Linux內核也作爲硬件和軟件棧之間的抽象層。

除了標準的Linux內核外,Android還增加了內核的驅動程序:Binder(IPC)驅動、顯示驅動、輸入設備驅動、音頻系統驅動、攝像頭驅動、WiFi驅動、藍牙驅動、電源管理。

第二層:本地框架和Java運行環境(LIBRARIES 和 ANDROID RUNTIME)

本地框架是有C/C++實現。包含C/C++庫,被Android系統中不同組件使用,它們通過Android應用程序框架爲開發者進行服務。 

系統C庫:(libc)從BSD繼承過來的標準的C系統函數庫,專門是爲基於嵌入式Linux的設備定製的庫。 

多媒體庫:基於PackerVideo的OpenCore;該庫支持多種常用的音頻、視頻格式回放和錄製,支持多種媒體格式的編和解碼格式。 

Suface Manager:顯示子系統管理器,並且爲多個應用程序提供2D和3D圖層的無縫融合。 

LibWebCore:一個最新的Web瀏覽器引擎,支持Android瀏覽器,以及一個可嵌入式的Web視圖。 

SGL:Skia圖形庫,底層的2D圖形引擎。 

3D libraries:基於OpenGL ES1.0 API的實現;該庫可以使用硬件3D加速(如果可用),或者使用高度優化的3D軟加速。 

FreeType:位圖(bitmap)和矢量(vector)字體顯示。 

Android運行環境(ANDROID RUNTIME):提供了Java編程語言核心庫的大多數功能,由Dalvik Java虛擬機和基礎的Java類庫組成。 

Dalvik是Android中使用的Java虛擬機,每個Android應用程序都在自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設計成一個可以同時高效運行多個虛擬機實例的虛擬系統。執行後綴名爲.dex的Dalvik可執行文件,該格式的文件針對小內存使用做出了優化。同時虛擬機是基於寄存器的,所有的類都是有Java編譯器編譯,然後通過SDK中的“dx”工具轉化爲.dex格式由虛擬機執行。Dalvik虛擬機依賴於Linux內核的一些功能,比如線程機制和底層內存管理機制。

第三層:Android應用框架(ANDROIDFRAMEWORK) 

在Android系統中,開發人員也可以完全訪問核心應用程序所使用的API框架。

第四層:Android應用程序(APPLICATIONS) 

注意:Android應用程序都是有Java語言編寫的。用戶開發的Android應用程序和Android的核心應用程序是同一層次的,它們都是基於Android的系統API構建的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章