Android系统架构图
一、Aplications(應用層)
應用是用Java語言編寫的云新在虛擬機上的程序。
二、Application Framework(應用框架層)
這一層是編寫Google發布的核心應用時所使用的API框架,開發人員可以使用這些框架來開發自己的應用。
View System:可以用來構建應用程序,它包括列表、網格、文本框、按鈕以及可嵌入的Web瀏覽器。
Content Providers:它可以讓一個應用訪問另一個應用的數據,或共享它們自己的數據。
Resource Manager:提供非代碼資源的訪問,如本地字符串、圖形和布局文件。
Notification Manager:應用可以在狀態欄中顯示自定義的提示信息。
Activity Manager:用來管理應用程序生命周期并提供常用的導航退回功能。
Window Manager:管理所有的窗口程序。
Package Manager:Android系統內的程序管理。
三、Libraries、Android Runtime(系統運行庫層)
當使用Android應用框架時,Android系統會通過一些C/C++庫賴支持我們使用的各個組件,使其能更好地為我們服務。
Bionic系統C庫:C語言標準庫,系統最底層的的庫,C庫通過Linux系統來調用。
多媒體庫(MediaFramework):Android系統多媒體庫,基于PackerVideo OpenCORE,該庫支持多種常見格式的音頻、視頻的回放和錄制,以及圖片,比如MPEG4、MP3、AAC、AMR、JPG、PNG等。
SGL:2D圖形引擎庫。
SSL:位于TCP/IP協議與各種應用層協議之間,為數據通信提供支持。
OpenGL ES 1.0:3D效果的支持。
SQLite:關系數據庫。
Webkit:Web瀏覽器引擎。
FreeType:位圖(bitmap)及矢量(vector)字體。
在Android操作系統中,每個Java程序都運行在Dalvik虛擬機上,其只能執行.dex的可執行文件,當Java程序通過編譯后,最后還需要通過SDK中的dx工具轉為成.dex格式才能正常在虛擬機上執行,Java虛擬機運行的是Java字節碼,而Dalvik虛擬機運行的則是其專有的文件格式dex(Dalvik Exceutable)的文件。
Dalvik虛擬機有如下幾個主要特征:
1.專有的dex文件格式。
2.dex的優化,dex文件的結構是緊湊的。
3.基于寄存器。
4.一個應用,一個虛擬機實例,一個進程。每一個Android應用度運行在一個Dalvik虛擬機實例中,每一個虛擬機實例都是一個獨立的進程空間。
四、Linux Kernel(Linux內核層)
顯示驅動(Display Driver):基于Linux的幀緩沖(Frame Buffer)驅動。
鍵盤驅動(KeyBoard Driver):作為輸入設備的鍵盤驅動。
Flash內存驅動(Flase Memory Driver):基于MTD的Flash驅動程序。
照相機驅動(Camera Driver):常用的基于Linux的v412(Video for Linux)的驅動。
音頻驅動(Audio Driver):常用的基于ALSA的高級Linux聲音體系驅動。
藍牙驅動(Bluetooth Driver):基于IEEE 802.15.1標準的無線傳輸技術。
WiFi驅動:基于IEEE 802.11標準的驅動程序。
Binder IPC驅動:Android的一個特殊的驅動程序,具有單獨的設備節點,提供進程間通信的功能。
Power Management(電源管理):比如電池電量等。
五、Android應用程序框架
android.app:提供高層的程序模型和基本的運行環境。
android.content:包含對各種設備上的數據進行訪問和發布。
android.database:通過內容提供者瀏覽和操作數據庫。
android.graphics:底層的圖形庫,包含畫布i、顏色過濾、點、矩形,可以將它們直接繪制到屏幕上。
android.location:定位和相關服務的類。
android.media:提供一些類管理多種音頻、視頻的媒體接口。
android.net:提供幫助網絡訪問的類,超過通常的java.net.*接口。
android.os:提供了系統服務、消息傳輸和IPC機制。
android.opengl:提供OpenGL的工具。
android.provider:提供訪問Android內容提供者的類。
android.telephony:提供與撥打電話相關的API交互。
android.view:提供基礎的用戶界面接口框架。
android.util:涉及工具性的方法,例如時間日期的操作。
android.webkit:默認瀏覽器操作接口。
android.widget:包含各種UI元素在應用程序的布局中使用。
總結
以上是生活随笔為你收集整理的Android系统架构图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于函数指针调用C++非静态成员
- 下一篇: 探索比特币源码2-配置Bitcoin C