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
- 系統 API 代表 Android API,僅供合作夥伴和原始設備製造商納入隨附應用程式。這些 API 在原始碼中標示為 @SystemApi。
- Android API
- Android API 是公開的 API,供第三方 Android 應用程式開發人員使用。如要瞭解 Android API,請參閱「Android API 參考資料」。
- Android 架構
- 一組 Java 類別、介面和其他預先編譯的程式碼,用於建構應用程式。您可以使用 Android API 公開存取架構的部分內容。架構的其他部分只能透過系統 API 供 OEM 使用。Android 架構程式碼會在應用程式程序中執行。
- 系統服務
- 系統服務是模組化、專注的元件,例如
system_server
、SurfaceFlinger 和 MediaService。Android 架構 API 公開的功能會與系統服務通訊,以存取基礎硬體。 - Android 執行階段 (ART)
- AOSP 提供的 Java 執行階段環境。ART 會將應用程式的位元碼轉譯為處理器專屬指令,並由裝置的執行階段環境執行。
- 硬體抽象層 (HAL)
- HAL 是抽象層,提供標準介面供硬體供應商實作。HAL 可讓 Android 不瞭解低階驅動程式實作項目。使用 HAL 可讓您實作功能,而不影響或修改較高層級的系統。詳情請參閱 HAL 總覽。
- 原生 Daemon 和程式庫
這個層級的原生精靈包括
init
、healthd
、logd
和storaged
。這些常駐程式會直接與核心或其他介面互動,且不依附於以使用者空間為基礎的 HAL 實作。這個層級的原生程式庫包括
libc
、liblog
、libutils
、libbinder
和libselinux
。這些原生程式庫會直接與核心或其他介面互動,且不依附於以使用者空間為基礎的 HAL 實作項目。- 核心
核心是所有作業系統的中央部分,可與裝置上的基礎硬體通訊。在可行情況下,AOSP 核心會拆分為與硬體無關的模組和供應商專屬模組。如要瞭解 AOSP 核心元件的說明 (包括定義),請參閱「核心總覽」。
後續步驟
- 如果您是 AOSP 新手,且想開始開發,請參閱「入門」一節。
- 如要進一步瞭解特定 AOSP 層,請按一下左側導覽面板中的章節名稱,然後從該章節的總覽開始。