AOSP 常見問題

本文件提供 Android 開放原始碼平台 (AOSP) 的一般問題解答。

關於 android-latest-release

為何無法提交至 aosp-main?

該分支目前為唯讀,因此您無法提交至 aosp-main

我該向哪裡提出對 AOSP 的變更建議?

您應針對 android-latest-release (使用 Repo 時) 或 android-latest-release 資訊清單中指定的最新發布分支版本 (直接使用 Git 時) 提出新的變更。其他分支 (例如 aosp-main) 中現有的建議變更則不必移動。

我應該同步到哪個分支?

  • 使用 Repo 時,請使用下列指令同步至 android-latest-release

    repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest
  • 直接使用 Git 時,請同步至 android-latest-release 資訊清單中指定的預設修訂版本分支。

如要進一步瞭解如何同步分支,請參閱「初始化存放區用戶端」。

android-latest-release 的程式碼是否會合併至 aosp-main?

否,程式碼不會合併至 aosp-main,因為該分支自 2025 年 3 月 27 日起為唯讀分支。

下一個版本的程式碼會推送至哪裡?

Google 會將下一個版本的程式碼推送至最新的公開發布分支,並更新 android-latest-release 資訊清單,以便指向該分支。

我的變更要求是否會從 android-latest-release 分支中挑選,並納入 Gerrit 內部?

上傳提案變更後,Google 會進行審查,並在接受後將其挑選至 Gerrit 內部。

如何得知系統是否已接受我的變更要求?

接受和精選的變更會在日後推送至 Android 主機的發布分支時顯示,並可使用 android-latest-release 與 repo 同步。系統不會提供通知機制,告知您建議的變更是否已接受或拒絕。

外部貢獻者提出變更,到合併至最新發布分支版本的一般工作流程為何?

  1. 外部貢獻者建議變更 android-latest-release (使用 Repo 時) 或 android-latest-release 資訊清單中指定的最新發布分支版本 (直接使用 Git 時)。

  2. Google 會審查變更內容。如果變更內容為:

    • 已接受,Google 會挑選該變更並合併至內部開發分支。

    • 不接受,Google 不會挑選變更。

  3. 外部內容提供者在 android-latest-release檢查變更

如果我不再需要提出的變更,該怎麼辦?

如果您不再需要所提議的變更、不想合併變更,或是知道 Google 已審查變更,請放棄變更,讓變更保留在 Android 主機的提議變更記錄中。

開放原始碼問題

Google 為什麼要開放 Android 原始碼?

Google 推出 AOSP 的初衷,是為了回應我們在推出行動應用程式時的經驗。我們希望確保一向有開放平台可供電信業者、原始設備製造商 (OEM) 和開發人員使用,以便將創新構想付諸實現。我們也希望避免任何中央故障點,因此任何業界參與者都無法限制或控制其他人的創新。我們在 AOSP 中最重要的目標,就是確保開放原始碼 Android 軟體的實作方式盡可能廣泛且相容,以便造福大眾。

Android 是哪種開放原始碼專案?

Google 會監督核心 AOSP 的開發作業,並致力於建立健全的開發人員和使用者社群。在大多數情況下,Android 原始碼是根據寬鬆的 Apache License 2.0 授權,而非copyleft 授權授權。我們選擇 Apache 2.0 授權,是因為我們認為這能鼓勵廣泛採用 Android 軟體。詳情請參閱「授權」。

為什麼 Google 負責 Android 的運作?

推出軟體平台是一項複雜的工作。開放性對於平台的長期成功至關重要,因為開放性可吸引開發人員投資,並確保公平競爭環境。平台也必須是吸引使用者的產品。

Google 已投入專業工程資源,確保 Android 成為具備高度競爭力的軟體平台。Google 將 Android 專案視為全方位產品開發作業,並達成必要的業務協議,確保搭載 Android 的優質裝置能順利上市。

我們會確保 Android 能為使用者帶來成功體驗,讓 Android 在平台和開源專案的角色中發揮活力。畢竟,誰會想要失敗產品的原始碼?

我們的目標是確保 Android 生態系統的成功。我們開放了 Android 原始碼,讓任何人都能根據自身需求修改及發布軟體。

Google 的 Android 產品開發整體策略為何?

我們在競爭激烈的市場上推出優質裝置。然後,我們會將核心平台的創新功能和強化功能納入下一個版本。

實際上,這表示 Android 工程團隊會專注於少數「旗艦」裝置,並開發下一個版本的 Android 軟體,以支援這些產品的推出。這些旗艦裝置可吸收大部分產品風險,並為廣大的原始設備製造商 (OEM) 社群開創先例,後者會推出更多可善用新功能的裝置。這樣一來,我們就能確保 Android 平台能根據實際裝置的需求進行演進。

Android 軟體的開發方式

每個 Android 平台版本 (例如 1.5 或 8.1) 在開放原始碼樹中都有對應的分支版本。系統會將最新分支版本視為 android-latest-release 資訊清單所指向的目前穩定分支版本。這是製造商將應用程式移植至裝置的版本。這個分支版本一律會保持適合發布。

最後,Google 會同時開發旗艦裝置和下一個版本的 Android 平台。

為什麼 Android 部分內容是私下開發的?

推出裝置通常需要一年以上的時間。當然,裝置製造商也希望能提供最新的軟體。同時,開發人員也不想在編寫應用程式時,不斷追蹤平台的新版本。兩個群組都面臨著產品運送和不想落後的兩難。

為解決這個問題,我們在私人分支中開發了下一個 Android 版本的部分內容,包括核心平台 API。這些 API 構成了下一個 Android 版本。我們的目標是專注於現行穩定版的 Android 原始碼,同時建立下一個版本的平台。這樣一來,開發人員和原始設備製造商 (OEM) 就能使用單一版本,不必追蹤未完成的未來工作,

何時會發布原始碼?

準備就緒後,發布原始碼是一項相當複雜的程序。Android 的部分元件 (例如核心) 是公開開發的,因此原始碼一律可供使用。其他部分會先在私人樹狀結構中開發,並在下一個平台版本準備就緒時發布該原始碼。

在某些版本中,核心平台 API 會提前準備好,以便我們在裝置發布前提前推出原始碼,供開發人員先行查看。但在其他版本中則無法執行這項操作。無論如何,我們都會在認為版本穩定且開發程序允許的情況下,發布平台原始碼。

發布新版 Android 的原始碼時,需要注意哪些事項?

為新版 Android 平台發布原始碼是一項重大程序。首先,軟體會內建於裝置的系統映像檔,並通過各種形式的認證,包括手機部署區域的政府法規認證。程式碼也會經過運算子測試。這是這個程序的重要階段,因為它有助於偵測軟體錯誤。

當版本獲得監管機構和作業系統供應商核准後,製造商就會開始大量生產裝置,而我們也會開始發布原始碼。

與大規模生產作業同時,Google 團隊會啟動多項作業,準備開放原始碼版本。這些工作包括進行最終的 API 變更、更新文件 (例如反映在資格測試期間所做的任何修改)、為新版本準備 SDK,以及發布平台相容性資訊。

我們的法律團隊會進行最終簽核,將程式碼發布至開放原始碼。開放原始碼貢獻者必須簽署貢獻者授權協議,證明他們對貢獻內容擁有智慧財產權,Google 也必須確認來源已獲得授權,才能做出貢獻。

從開始大量生產到軟體發布,通常需要約一個月的時間,因此原始碼通常會在裝置送達使用者手中時發布。

AOSP 與 Android 相容性計畫有何關聯?

AOSP 會維護 Android 軟體,並開發新版本。由於此軟體為開放原始碼,因此可用於任何用途,包括開發與其他裝置不相容的裝置,前提是這些裝置也採用相同的來源。

Android 相容性計畫的功能是定義 Android 的基準實作方式,以便與開發人員編寫的第三方應用程式相容。Android 相容性裝置可參與 Android 生態系統,包括 Google Play;不符合相容性規定的裝置則會位於該生態系統之外。

換句話說,Android 相容性計畫是我們用來區分 Android 相容裝置與僅執行原始碼衍生內容的裝置。我們歡迎所有人使用 Android 原始碼,但要加入 Android 生態系統,裝置必須經過該計畫認證,確認與 Android 相容。

如何為 Android 做出貢獻?

您可以回報錯誤、為 Android 編寫應用程式,或將原始碼提供給 AOSP。

我們接受的程式碼貢獻類型有限制。舉例來說,有人可能想提供其他應用程式 API,例如以 C++ 為基礎的完整環境。我們會拒絕這項貢獻,因為 Android 鼓勵應用程式在 ART 執行階段中執行。同樣地,我們也不接受與授權目標不相容的 GPL 或 LGPL 程式庫等貢獻。

我們鼓勵有意提供原始碼的使用者,在開始任何工作前,透過 Android 社群中列出的管道與我們聯絡。詳情請參閱「貢獻」。

如何成為 Android 提交者?

AOSP 並沒有「提交者」的概念。所有貢獻內容 (包括 Google 員工撰寫的內容) 都會經過 Gerrit 這個網頁系統,這是 Android 工程流程的一部分。這套系統會與 Git 原始碼管理系統搭配運作,以便妥善管理原始碼貢獻。

指定核准者必須審查並接受所有提議的變更。核准者通常是 Google 員工,但無論來源為何,都由同一位核准者負責審查所有提交內容。

詳情請參閱「提交修補程」。