從上圖中能夠看出,Android系統架構爲四層結構,從上層到下層分別是應用程序層、應用程序框架層、系統運行庫層以及Linux內核層,分別介紹以下:linux
(1)Appliacationandroid
Android平臺不單單是操做系統,也包含了許多應用程序,諸如SMS短信客戶端程序、電話撥號程序、圖片瀏覽器、Web瀏覽器等應用程序。這些應用程序都是用Java語言編寫的,而且這些應用程序都是能夠被開發人員開發的其餘應用程序所替換,這點不一樣於其餘手機操做系統固化在系統內部的系統軟件,更加靈活和個性化。數據庫
(2)Application Framework瀏覽器
應用程序框架層是咱們從事Android開發的基礎,不少核心應用程序也是經過這一層來實現其核心功能的,該層簡化了組件的重用,開發人員能夠直接使用其提供的組件來進行快速的應用程序開發,也能夠經過繼承而實現個性化的拓展。安全
A: Activity Manager架構
管理各個應用程序生命週期以及一般的導航回退功能框架
B: Window Manageride
管理全部的窗口程序函數
C: Content Provider工具
使得不一樣應用程序之間存取或者分享數據
D: View System
構建應用程序的基本組件
E: Notification Manager
使得應用程序能夠在狀態欄中顯示自定義的提示信息
F:Package Manager
Android系統內的程序管理
G: Telephony Manager
管理全部的移動設備功能
H:Resource Manager
提供應用程序使用的各類非代碼資源,如本地化字符串、圖片、佈局文件、顏色文件等
I: Location Manager
提供位置服務
J:XMPP Service
提供Google Talk服務
(3)系統運行庫層
從圖中能夠看出,系統運行庫層能夠分紅兩部分,分別是系統庫和Android運行時,分別介紹以下:
A:系統庫
系統庫是應用程序框架的支撐,是鏈接應用程序框架層與Linux內核層的重要紐帶。其主要分爲以下幾個:
執行多個應用程序時候,負責管理顯示與存取操做間的互動,另外也負責2D繪圖與3D繪圖進行顯示合成。
多媒體庫,基於PacketVideo OpenCore;支持多種經常使用的音頻、視頻格式錄製和回放,編碼格式包括MPEG四、MP三、H.26四、AAC、ARM。
小型的關係型數據庫引擎
根據OpenGL ES 1.0API標準實現的3D繪圖函數庫
提供點陣字與向量字的描繪與顯示
一套網頁瀏覽器的軟件引擎
底層的2D圖形渲染引擎
在Andorid上通訊過程當中實現握手
從BSD繼承來的標準C系統函數庫,專門爲基於embedded linux的設備定製
B:Android運行時
Android應用程序時採用Java語言編寫,程序在Android運行時中執行,其運行時分爲核心庫和Dalvik虛擬機兩部分。
核心庫提供了Java語言API中的大多數功能,同時也包含了Android的一些核心API,如android.os、android.net、android.media等等。
Android程序不一樣於J2me程序,每一個Android應用程序都有一個專有的進程,而且不是多個程序運行在一個虛擬機中,而是每一個Android程序都有一個Dalivik虛擬機的實例,並在該 實例中執行。Dalvik虛擬機是一種基於寄存器的Java虛擬機,而不是傳統的基於棧的虛擬機,並進行了內存資源使用的優化以及支持多個虛擬機的特色。須要注意的是,不一樣於J2me,Android程序在虛擬機中執行的並不是編譯後的字節碼,而是經過轉換工具dx將Java字節碼轉成dex格式的中間碼。
(4)Linux內核層
Android是基於Linux2.6內核,其核心繫統服務如安全性、內存管理、進程管理、網路協議以及驅動模型都依賴於Linux內核。