Android 架構
Android 操作系統是一個軟體組件的棧,在架構圖中它大致可以分為五個部分和四個主要層。
Linux內核
在所有層的最底下是 Linux - 包括大約115個補丁的 Linux 3.6。它提供了基本的系統功能,比如進程管理,記憶體管理,設備管理(如攝像頭,鍵盤,顯示器)。同時,內核處理所有 Linux 所擅長的工作,如網路和大量的設備驅動,從而避免相容大量週邊硬體介面帶來的不便。
程式庫
在 Linux 內核層的上面是一系列程式庫的集合,包括開源的 Web 流覽器引擎 Webkit ,知名的 libc 庫,用於倉庫存儲和應用數據共用的 SQLite 資料庫,用於播放、錄製音視頻的庫,用於網路安全的 SSL 庫等。
Android程式庫
這個類別包括了專門為 Android 開發的基於 Java 的程式庫。這個類別程式庫的示例包括應用程式框架庫,如用戶介面構建,圖形繪製和數據庫訪問。一些 Android 開發者可用的 Android 核心程式庫總結如下:
- android.app - 提供應用程式模型的訪問,是所有 Android 應用程式的基石。
- android.content - 方便應用程式之間,應用程式組件之間的內容訪問,發佈,消息傳遞。
- android.database - 用於訪問內容提供者發佈的數據,包含 SQLite 資料庫管理類。
- android.opengl - OpenGL ES 3D 圖片渲染 API 的 Java 介面。
- android.os - 提供應用程式訪問標注操作系統服務的能力,包括消息,系統服務和進程間通信。
- android.text - 在設備顯示上渲染和操作文本。
- android.view - 應用程式用戶介面的基礎構建塊。
- android.widget - 豐富的預置用戶介面組件集合,包括按鈕,標籤,列表,佈局管理,單選按鈕等。
- android.webkit - 一系列類的集合,允許為應用程式提供內建的 Web 流覽能力。
看過了 Android 運行層內的基於 Java 的核心程式庫,是時候關注一下 Android 軟體棧中的基於 C/C++ 的程式庫。
Android運行時
這是架構中的第三部分,自下而上的第二層。這個部分提供名為 Dalvik 虛擬機的關鍵組件,類似於 Java 虛擬機,但專門為 Android 設計和優化。
Dalvik 虛擬機使得可以在 Java 中使用 Linux 核心功能,如記憶體管理和多線程。Dalvik 虛擬機使得每一個 Android 應用程式運行在自己獨立的虛擬機進程。
Android 運行時同時提供一系列核心的庫來為 Android 應用程式開發者使用標準的 Java 語言來編寫 Android 應用程式。
應用框架
應用框架層以 Java 類的形式為應用程式提供許多高級的服務。應用程式開發者被允許在應用中使用這些服務。
- 活動管理者 - 控制應用程式生命週期和活動棧的所有方面。
- 內容提供者 - 允許應用程式之間發佈和分享數據。
- 資源管理器 - 提供對非代碼嵌入資源的訪問,如字串,顏色設置和用戶介面佈局。
- 通知管理器 - 允許應用程式顯示對話框或者通知給用戶。
- 視圖系統 - 一個可擴展的視圖集合,用於創建應用程式用戶介面。
應用程式
頂層中有所有的 Android 應用程式。你寫的應用程式也將被安裝在這層。這些應用程式包括通訊錄,流覽器,遊戲等。