標籤:
一,Application(應用程式層)
應用是用Java語言編寫的運行在虛擬機器上的程式
二,Application Framework(應用程式框架層)
這一層是編寫Google發布的核心應用時所使用的API架構,開發人員可以使用這些架構來開發自己的應用
View System: 可以用來構建應用程式,它包括列表、網格、文字框、按鈕已經可以嵌入的Web瀏覽器
Content Provider:它可以讓一個應用訪問另一個應用的資料,或者共用他們自己的資料
Resource Manager:提供非代碼資源的訪問,如本地字串,圖形和布局檔案
Notification Manager: 應用程式可以在狀態列中顯示自訂的提示資訊
Activity Manager:用來管理應用程式生命週期病提供常用的導航退回功能
Windows Manager:管理所有的視窗程序
Package Manager:Android系統內的程式管理
三,Libraries,Android Runtime(系統運行庫層)
當使用Android應用程式層架構時,Android系統會通過一些C/C++庫來支援我們使用的各個組件,使其能更好地為我們服務
Binoic系統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 Kerner(Linux核心層)
顯示驅動(Display Driver):基於linux的幀緩衝(Frame Buffer)驅動
鍵盤驅動(KeyBoard Driver): 作為輸入裝置的鍵盤驅動
Flash記憶體驅動(Flash Memory Driver):基於MTD的Flash驅動程式
照相機驅動(Camera Driver):常用的基於Linux的V412(Video for Linux)的驅動
音頻驅動(Audio Driver):常用的機遇ALSA的進階Linux聲音體系驅動
藍牙堆疊(Bluetooth Driver):基於IEEE 802.15.1標準的無線傳輸技術
WI-FI驅動:基於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系統架構