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