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

android5層架構(gòu)

5層的架構(gòu)圖
每層的作用

Android系統(tǒng)體系結(jié)構(gòu)

1.Linux kernal

主要封裝了各種驅(qū)動代碼,通過對驅(qū)動的調(diào)用來操作硬件

  • Display Driver: 顯示驅(qū)動
  • Camera Driver: 照相機驅(qū)動
  • Flash Memory Driver: 閃存驅(qū)動
  • 以塊狀存儲數(shù)據(jù),斷電仍能保存數(shù)據(jù) 常用來保存設(shè)置信息
  • Binder Driver: IPC通訊驅(qū)動
  • KeyPad Driver: 鍵映射驅(qū)動
  • Android輸入事件設(shè)備,用的是中斷(硬件觸發(fā))或者輪詢結(jié)構(gòu)(軟件模擬),捕獲設(shè)備具體的掃描碼
  • Wifi Driver:Wifi驅(qū)動
  • Audio Driver:音頻驅(qū)動
  • Power Management:電量管理驅(qū)動

2.Android Hardware Abstarct Layer

Android的硬件抽象層,簡單來說,就是對Linux內(nèi)核驅(qū)動程序的封裝,向上提供接口,屏蔽底層的實現(xiàn)細(xì)節(jié)。也就是說,把對硬件的支持分成了兩層,一層放在用戶空間(User Space),一層放在內(nèi)核空間(Kernel Space),其中,硬件抽象層運行在用戶空間,而Linux內(nèi)核驅(qū)動程序運行在內(nèi)核空間。

3.Libraries

因為java代碼無法直接調(diào)用c/c++驅(qū)動代碼,所以在這一層,系統(tǒng)通過封裝了一系列的函數(shù)庫供上層使用.

  • Surface Manager: 負(fù)責(zé)管理顯示與存取操作間的互動,另外也負(fù)責(zé)將2D繪圖與3D繪圖進(jìn)行顯示上的合成
  • Media Framework: 一個開源的多媒體框架,允許我們創(chuàng)造出更高質(zhì)量與全新的播放器效果
  • SQLite: 安卓下推薦使用的數(shù)據(jù)庫,是一個嵌入式的數(shù)據(jù)庫
  • OpenGL ES: 是 OpenGL 三維圖形 API 的子集,針對手機、PDA和游戲主機等嵌入式設(shè)備而設(shè)計
  • FreeType: 一個完全免費(開源)的、高質(zhì)量的且可移植的字體引擎
  • WebKit: 是一個開源的瀏覽器引擎
  • SGL: 2D圖形引擎庫
  • SSL: 位于TCP/IP協(xié)議與各種應(yīng)用層協(xié)議之間,為數(shù)據(jù)通信提供支持。
  • Libc: c層中最基本的函數(shù)庫

4.Android Runtime

  • Dalvik虛擬機(Dalvik Virtual Machine)
  • Dalvik虛擬機是Google的用于移動設(shè)備的Android平臺的一個主要部分??蛇\行Java平臺應(yīng)用程序。最開始是用jvm虛擬機,但涉及到版權(quán)的問題,最后用Dalvik虛擬機。
  • 一般編寫好的Java 程序編譯后會產(chǎn)生class 文件,而且由jvm虛擬機運行;但是Android 不使用jvm虛擬機,而改用Google 自行研發(fā)的Dalvik虛擬機,所運行的文件則是dex 文件(Dalvik Executable),而非class 文件
  • Dalvik虛擬機jvm虛擬機的區(qū)別

1.編譯方式:
jvm虛擬機: .java->.class->.jar

`Dalvik虛擬機`:        .java ->.class->.dex

2.架構(gòu):
jvm虛擬機: 基于棧的結(jié)構(gòu)
Dalvik虛擬機: 基于寄存器的結(jié)構(gòu)

  • Core Libraries: Android 核心函數(shù)庫所提供的功能,大部分與Oracle的Java 核心函數(shù)庫相同。

5.Application framework

該層封裝了各種應(yīng)用管理器給java應(yīng)用層調(diào)用,其底層又間接的調(diào)用了Android Runtime中java核心庫的代碼。通過代碼調(diào)用Libraries層的API函數(shù)。

  • Activity Manager
  • Window Manager
  • Content Provider
  • View System Pacakage Manager
  • Telephony Manager
  • Resource Manager Location Manager
  • Notification Manager
最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

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