1、android分為四層:
應用程式層(Applications)、應用程式架構層(Application Framework)、系統運行庫層(Libraries和Android Runtime)和Linux核心層(Linux Kernel)。
2、應用程式層:
所有的應用程式都是使用java語言編寫的,通過調用應用程式架構層(Application Framework)所提供的API來完成。
3、應用程式架構層:
為開發人員提供了可以完全訪問核心應用程式所使用的API架構。
•Active Manager:管理應用程式生命週期並提供常用的導航回退功能。比如:開啟應用程式需要的資源和退出應用程式時需要的釋放資源。
•視窗管理器:管理所有開啟的視窗程序。
•內容提供器:使應用程式可以訪問另一個應用程式的資料(如連絡人資料庫),或者共用它們的資料。
•視圖系統:可以用來構建應用程式,它包括列表list、網格grid、文字框text box、按鈕button、圖形繪製等,以及可嵌入的web瀏覽器
•通知管理器:使應用程式可以再狀態列中顯示自訂的提示資訊。
•包管理器:管理所有安裝在Android系統中的應用程式。比如:資訊查看和卸載程式等。
•資源管理員:提供各種資源供應程式使用。比如:字元資源、映像資源、音頻資源。
•硬體服務:電話撥打和接聽等相關功能、管理地圖服務的相關功能、有關藍芽服務的相關功能、WIFI服務相關功能、USB服務相關功能、感應器服務相關功能。
4、系統執行階段程式庫:
系統運行庫層包括程式庫和Android運行庫兩部分
1)程式庫:Android包含一些C/C++庫,這些庫能被Android系統中的不同組件使用,它們通過應用程式架構為開發人員提供服務,核心庫的功能介紹:
Surface Manager:對顯示子系統進行管理,並且為多個應用程式提供2D和3D圖層的無縫融合。
Media Framework:基於PacketVideo OpenCORE,該庫支援多種格式的音頻和視頻的回放和錄製,同時支援靜態影像檔。編碼格式包括:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG。
SQLite:對於所有應用程式可用、功能強勁的輕型關係型資料庫引擎
OpenglES支援OpenGL ES1.x和OpenGL ES 2.0該庫可以使用硬體3D加速或者使用高度最佳化的3D軟加速
FreeType:位元影像、向量和字型顯示
Webkit:最新的Web瀏覽器引擎,支援Android瀏覽器和一個可嵌入的Web伺服器。
SSL:安全通訊相關技術處理,為網路通訊提供安全及資料完整性的一種安全性通訊協定。
Libe:Android並沒有採用glibc作為C庫,而是採用了Google自己開發的Bionic Lib。它從BSD繼承了標準的C系統函數庫,是專門為基於嵌入式Linux裝置定製的。
2)Android運行庫:
Android執行階段程式庫又分為核心庫和Dalvik虛擬機器兩部分。核心庫提供了Java語言核心庫的大多數功能,這裡主要通過JNI的方式嚮應用程式架構層提供調用底層程式庫的介面。Dalvik虛擬機器是為了能同時高效地運行多個VMs而實現的。
5、Linux核心層:
Android依賴於Linux2.6核心提供的核心系統服務,例如安全、記憶體管理、進程管理、網路棧、驅動模組等,Android對核心進行了增強。