天天看點

Android基礎知識 -架構圖解析

Android 結構圖

Android基礎知識 -架構圖解析

Android的系統架構和其作業系統一樣,采用了分層的架構。從架構圖看,android分為四個層,從高層到低層分别是應用程式層、應用程式架構層、系統運作庫層和linux核心層。

Android系統架構圖

  1.應用程式

  Android會同一系列核心應用程式包一起釋出,該應用程式包包括email用戶端,SMS短消息程式,月曆,地圖,浏覽器,聯系人管理程式等。所有的應用程式都是使用JAVA語言編寫的。

2.應用程式架構

  開發人員也可以完全通路核心應用程式所使用的API架構。該應用程式的架構設計簡化了元件的重用;任何一個應用程式都可以釋出它的功能塊并且任何其它的應用程式都可以使用其所釋出的功能塊(不過得遵循架構的安全性限制)。同樣,該應用程式重用機制也使使用者可以友善的替換程式元件。

  隐藏在每個應用後面的是一系列的服務和系統, 其中包括;

  * 豐富而又可擴充的視圖(Views),可以用來建構應用程式, 它包括清單(lists),網格(grids),文本框(text boxes),按鈕(buttons), 甚至可嵌入的web浏覽器。

  * 内容提供器(Content Providers)使得應用程式可以通路另一個應用程式的資料(如聯系人資料庫), 或者共享它們自己的資料

  * 資料總管(Resource Manager)提供 非代碼資源的通路,如本地字元串,圖形,和布局檔案( layout files )。

  * 通知管理器 (Notification Manager) 使得應用程式可以在狀态欄中顯示自定義的提示資訊。

  * 活動管理器( Activity Manager) 用來管理應用程式生命周期并提供常用的導航回退功能。

3.系統運作庫

1)程式庫

  Android 包含一些C/C++庫,這些庫能被Android系統中不同的元件使用。它們通過 Android 應用程式架構為開發者提供服務。以下是一些核心庫:

  * 系統 C 庫 - 一個從 BSD 繼承來的标準 C 系統函數庫( libc ), 它是專門為基于 embedded linux 的裝置定制的。

  * 媒體庫 - 基于 PacketVideo OpenCORE;該庫支援多種常用的音頻、視訊格式回放和錄制,同時支援靜态圖像檔案。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。

  * Surface Manager - 對顯示子系統的管理,并且為多個應用程式提 供了2D和3D圖層的無縫融合。

  * LibWebCore - 一個最新的web浏覽器引擎用,支援Android浏覽器和一個可嵌入的web視圖。

  * SGL - 底層的2D圖形引擎

  * 3D libraries - 基于OpenGL ES 1.0 APIs實作;該庫可以使用硬體 3D加速(如果可用)或者使用高度優化的3D軟加速。

  * FreeType -位圖(bitmap)和矢量(vector)字型顯示。

* SQLite - 一個對于所有應用程式可用,功能強勁的輕型關系型資料庫引擎。

2)Android 運作庫

  Android 包括了一個核心庫,該核心庫提供了JAVA程式設計語言核心庫的大多數功能。

  每一個Android應用程式都在它自己的程序中運作,都擁有一個獨立的Dalvik虛拟機執行個體。Dalvik被設計成一個裝置可以同時高效地運作多個虛拟系統。 Dalvik虛拟機執行(.dex)的Dalvik可執行檔案,該格式檔案針對小記憶體使用做了優化。同時虛拟機是基于寄存器的,所有的類都經由JAVA編譯器編譯,然後通過SDK中 的 "dx" 工具轉化成.dex格式由虛拟機執行。

  Dalvik虛拟機依賴于linux核心的一些功能,比如線程機制和底層記憶體管理機制。

4.Linux 核心

  Android 的核心系統服務依賴于 Linux 2.6 核心,如安全性,記憶體管理,程序管理, 網絡協定棧和驅動模型。 Linux 核心也同時作為硬體和軟體棧之間的抽象層。

轉載于:https://www.cnblogs.com/liucancan/p/3165079.html