2019-08-12-Android系統(tǒng)架構(gòu)簡單介紹

Android系統(tǒng)架構(gòu)

類別 包含的基本內(nèi)容 更多內(nèi)容
應(yīng)用層 Email,Calendar,Camera,開發(fā)者開發(fā)的App等等
應(yīng)用框架層(Java Framework API) Content Provider,View System Activity,location,Package,Notification,Resource,TelePhony,Window
系統(tǒng)運行庫(C/C++libs和Android 運行時) Sqlite,LibC,MediaFramework,OpenGL Android RunTime, ART,Core Libs
硬件抽象層(HAL) Audio,BlueTooth,Camera,Sensors
Linux內(nèi)核 Drivers,Power Manager Aodio,Bindler(IPC),Display,KeyPad,BlueTooth,Camera,ShareMemory,USB,WIFI

Android的系統(tǒng)架構(gòu)分為五層,分別是應(yīng)用層(system app),應(yīng)用框架層(java api framework),運行時庫(runtime libs 和 C/C++ libs),硬件抽象層(HAL),linux內(nèi)核

1,system app

內(nèi)置的應(yīng)用和開發(fā)者開發(fā)的應(yīng)用都屬于應(yīng)用層。負(fù)責(zé)和用戶進(jìn)行交互,通常由Java來開發(fā)
2,java api framework

為開發(fā)者提供開發(fā)所需要的API。我們平常開發(fā)應(yīng)用調(diào)用的都是這一層的API,當(dāng)然也包括系統(tǒng)應(yīng)用

名稱 功能描述
Activity Manager(活動管理器) 管理各個應(yīng)用程序的生命周期,以及常用的導(dǎo)航會退功能
Location Manager(位置管理器) 提供地理位置及定位功能
Package Manager(包管理器) 管理所有安裝在Android系統(tǒng)上的應(yīng)用程序
Notification Manager(通知管理器) 使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息
Resource Manager(資源管理器) 提供應(yīng)用程序使用的各種非代碼資源,如本地化字符串,圖片,布局文件,顏色文件等
Telephony Manager(電話管理器) 管理所有的移動設(shè)備功能
Window Manager 管理所有開啟的窗口程序
Content Provider 使得不同應(yīng)用程序之間可以共享數(shù)據(jù)
View System(視圖系統(tǒng)) 構(gòu)建應(yīng)用程序的基本組件

3,系統(tǒng)運行庫(native)

從最開始的表格可以看出,系統(tǒng)運行庫分為倆個部分,分別是C/C++程序庫和Android RunTime庫

  • C/C++程序庫 能夠被Android系統(tǒng)的各個組件所使用,并通過應(yīng)用程序框架為開發(fā)者提供服務(wù),
名稱 功能描述
Open GL ES 3D繪圖函數(shù)庫
Libc 從BSD繼承來的標(biāo)準(zhǔn)C系統(tǒng)函數(shù)庫,專門為嵌入式Linux的設(shè)備定制
Media Framework 多媒體褲,支持常用的音頻和視頻的錄制和回放
Sqlite 輕型的關(guān)系型數(shù)據(jù)庫引擎
SGL 底層的2D圖像渲染引擎
SSL 安全套接層,是一種網(wǎng)絡(luò)通信提供的安全及數(shù)據(jù)完整性的安全協(xié)議
FreeType 可移植的字體引擎,它提供統(tǒng)一的接口來訪問多種字體格式文件
  • Android運行時庫

運行時庫又分為核心庫和ART(Android 5.0之后Dalvik虛擬機被ART代替)虛擬機。
核心庫提供了Java語言核心庫的大多數(shù)功能,這樣開發(fā)者可以使用Java語言編寫應(yīng)用程序

ART和Dalvik VM都是專門為移動設(shè)備定制的虛擬機。它們允許在有限的內(nèi)存里運行多個虛擬機實例,并且每個Dalvik應(yīng)用都作為一個單獨的Linux進(jìn)程執(zhí)行,獨立的進(jìn)程可以防止在虛擬機奔潰的時候,所有的應(yīng)用程序都被關(guān)閉

ART虛擬機效率高的原因是每次安裝應(yīng)用程序的時候,AOT編譯器都會進(jìn)行一次預(yù)編譯,將字節(jié)碼編譯成機器碼并保存在本地,這樣運行程序的時候就不需要執(zhí)行編譯,運行效率也大大提高

4,硬件抽象層(HAL)

隱藏特定廠商硬件接口細(xì)節(jié),為操作系統(tǒng)提供虛擬硬件平臺,使其具有與硬件無關(guān)性,為操作系統(tǒng)提供虛擬的硬件平臺

5,Linux 內(nèi)核

Android的核心服務(wù)基于Linux內(nèi)核,在此基礎(chǔ)上添加了部分Android專用的驅(qū)動,系統(tǒng)的安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型等都依賴于內(nèi)核

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容