Android 開放原始碼計畫常見問題 (常見問題)

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

開放原始碼問題

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

為了回應我們自家推出行動應用程式的經驗,我們推出了 Android 開放原始碼計畫。我們希望確保運營商、原始設備製造商 (OEM) 和開發人員一向都能使用開放平台,將創新構想付諸實現。此外,我們也希望避免任何中心點故障,因此沒有任何單一產業玩家能限製或控制任何其他的創新技術。我們在 AOSP 中最重要的目標,就是確保開放原始碼 Android 軟體的實作方式盡可能廣泛且相容,以便造福大眾。

Android 是什麼類型的開放原始碼專案?

Google 會監督核心 AOSP 的開發作業,並致力於建立健全的開發人員和使用者社群。大多數情況下,Android 原始碼是依據 Apache 授權 2.0 版獲得授權,而非複製授權。我們選擇 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) 在開放原始碼樹中都有對應的分支版本。系統會將最新分支視為目前的穩定分支版本。這是製造商將應用程式移植至裝置的版本。這個分支版本一律會保持適合發布。

同時,我們也推出了目前的實驗分支,用於開發推測性貢獻,例如大型新一代功能。視情況將錯誤修正和其他貢獻納入實驗性分支的目前穩定分支。

最後,Google 與開發旗艦裝置一同開發新一代 Android 平台。這個分支版本會視情況從實驗版和穩定版中提取變更。

如要進一步瞭解分支版本和版本,請參閱「版本生命週期」一文。

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

一般來說,推出裝置到上市需要超過一年的時間。此外,裝置製造商會想推出最新的軟體。同時,開發人員也不希望在編寫應用程式時持續追蹤新版平台。兩個群組都面臨著產品運送和不想落後的兩難。

為解決這個問題,下一版 Android 的某些部分 (包括核心平台 API) 是以私人分支版本開發。這些 API 構成了下一個 Android 版本。我們的目標是將重點放在目前最新的 Android 原始碼版本,同時建立平台的下一個版本。這可讓開發人員和原始設備製造商 (OEM) 使用單一版本,而不需要追蹤未完成的未來工作,Android 系統其他與應用程式相容性無關的部分則是由公開開發。我們預計隨著時間推移,將更多這類零件轉移至開放式開發。

何時會發布原始碼?

準備就緒時。發布原始碼是一項相當複雜的程序。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 應用程式,或向 Android 開放原始碼計畫提供原始碼。

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

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

如何成為 Android 提交者?

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

指定核准者必須接受所有提交的變更。核准者通常是 Google 員工,但相同的核准者須負責所有提交,無論來源為何。

詳情請參閱提交修補程式