天天看點

Android系統層次結構及分析

1、android分為四層:

應用程式層(Applications)、應用程式架構層(Application Framework)、系統運作庫層(Libraries和Android Runtime)和Linux核心層(Linux Kernel)。

2、應用程式層:

所有的應用程式都是使用java語言編寫的,通過調用應用程式架構層(Application Framework)所提供的API來完成。

3、應用程式架構層:

為開發人員提供了可以完全通路核心應用程式所使用的API架構。

•活動管理器:管理應用程式生命周期并提供常用的導航回退功能。比如:開啟應用程式需要的資源和退出應用程式時需要的釋放資源。

•視窗管理器:管理所有開啟的視窗程式。

•内容提供器:使應用程式可以通路另一個應用程式的資料(如聯系人資料庫),或者共享它們的資料。

•視圖系統:可以用來建構應用程式,它包括清單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對核心進行了增強。

繼續閱讀