Android 開放原始碼計畫 (AOSP) 是公開提供且可修改的 Android 原始碼。任何人都可以下載及修改裝置的 AOSP。AOSP 提供完整且功能齊全的 Android 行動平台。
實作 AOSP 的裝置有兩種相容性層級:AOSP 相容性和 Android 相容性。AOSP 相容裝置必須符合相容性定義說明文件 (CDD) 中的規定清單。與 Android 相容的裝置必須符合 CDD 和供應商軟體需求 (VSR) 中的規定清單,以及供應商測試套件 (VTS) 和相容性測試套件 (CTS) 中的測試規定。如要進一步瞭解 Android 相容性,請參閱 Android 相容性計畫。
Android 開放原始碼計畫架構
AOSP 的軟體堆疊包含下列層級:
圖 1. AOSP 軟體堆疊架構。
以下是圖 1 中所用術語的定義:
- Android 應用程式
- 僅使用 Android API 建立的應用程式。雖然 Google Play 商店是尋找及下載 Android 應用程式的常用方式,但還有許多其他替代方案。在某些情況下,裝置製造商可能會想預先安裝 Android 應用程式,以便支援裝置的核心功能。如果您有意開發 Android 應用程式,請造訪 developers.android.com。
- 特殊權限應用程式
- 使用 Android 和系統 API 組合建立的應用程式。這些應用程式必須預先安裝為裝置上的特權應用程式。
- 裝置製造商應用程式
- 使用 Android API、系統 API 和直接存取 Android 架構實作的組合所建立的應用程式。由於裝置製造商可能會直接存取 Android 架構中的不穩定 API,因此這些應用程式必須預先安裝在裝置上,且只能在裝置的系統軟體更新時更新。
- 系統 API
- System API 代表的 Android API 僅供合作夥伴和原始設備製造商 (OEM) 納入隨附應用程式。這些 API 在原始碼中標示為 @SystemApi。
- Android API
- Android API 是第三方 Android 應用程式開發人員可用的公開 API。如需 Android API 相關資訊,請參閱 Android API 參考資料。
- Android 架構
- 一組 Java 類別、介面,以及在建構應用程式時使用的其他預先編譯程式碼。架構的某些部分可透過 Android API 公開存取。架構的其他部分僅供原始設備製造商 (OEM) 使用,前提是使用系統 API。Android 架構程式碼會在應用程式程序中執行。
- 系統服務
- 系統服務是模組化、專注於
system_server
、SurfaceFlinger 和 MediaService 等元件的服務。Android 架構 API 公開的功能會與系統服務通訊,以存取基礎硬體。 - Android 執行階段 (ART)
- 由 AOSP 提供的 Java 執行階段環境。ART 會將應用程式的位元碼轉譯為由裝置執行階段環境執行的處理器專屬指令。
- 硬體抽象層 (HAL)
- HAL 是抽象層,提供硬體供應商可實作的標準介面。HAL 可讓 Android 無法辨識較低層級的驅動程式實作。使用 HAL 可讓您實作功能,而不會影響或修改較高層級的系統。詳情請參閱 HAL 總覽。
- 原生 Daemon 和程式庫
這個層級中的原生 Daemon 包括
init
、healthd
、logd
和storaged
。這些 Daemon 直接與核心或其他介面互動,不需要以使用者空間為基礎的 HAL 實作。這個圖層中的原生程式庫包括
libc
、liblog
、libutils
、libbinder
和libselinux
。這些原生程式庫會直接與核心或其他介面互動,且不依賴以使用者空間為基礎的 HAL 實作。- 核心
核心是任何作業系統的核心部分,可與裝置上的基礎硬體通訊。在可行情況下,AOSP 核心會分割為硬體無關的模組和供應商專屬模組。如需 AOSP 核心元件的說明 (包括定義),請參閱「核心總覽」。
後續步驟
- 如果您是 Android 開放原始碼計畫新手,並想開始開發,請參閱入門章節。
- 如要進一步瞭解 AOSP 的特定層級,請按一下左側導覽面板中的該層級名稱,然後從該層級的總覽開始瞭解。