Android操作系統是一堆軟體組件,大致分為五個部分,四個主要的層次,如下圖所示。
Linux內核
底層是Linux - Linux 3.6,大約有115個補丁。 這提供了設備硬體之間的抽象級別,它包含了所有必要的硬體驅動程式,如相機,鍵盤,顯示器等。此外,內核還處理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虛擬機 的關鍵組件,它是一種專為Android設計和優化的Java虛擬機。
Dalvik VM利用Linux內核特性,如記憶體管理和多線程,這在Java語言中是固有的。 Dalvik虛擬機使每個Android應用程式都能在自己的進程中運行,並擁有自己的Dalvik虛擬機實例。
Android運行時還提供了一組核心庫,使Android應用程式開發人員可以使用標準Java編程語言編寫Android應用程式。
應用框架
應用程式框架層以Java類的形式向應用程式提供了許多更高級別的服務。 應用程式開發人員可以在他們的應用程式中使用這些服務。
Android框架包含以下關鍵服務 -
- 活動管理器 - 控制應用程式生命週期和活動堆疊的所有方面。
- 內容提供者 - 允許應用程式發佈和與其他應用程式共用數據。
- 資源管理器 - 提供對非代碼嵌入式資源(如字串,顏色設置和用戶介面佈局)的訪問。
- 通知管理器 - 允許應用程式向用戶顯示警報和通知。
- 視圖系統 - 用於創建應用程式用戶介面的一組可擴展的視圖。
應用程式
在頂層是所有的Android應用程式。編寫的應用程式來安裝在這個圖層上。 這樣的應用程式的例子是聯繫人,流覽器,遊戲等。