Google致力於提高黑人社區的種族平等。 怎麼看。
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

Android軟件管理

Android開源項目(AOSP)維護了一個完整的軟件堆棧,供OEM和其他設備實現者移植並在其自己的硬件上運行。為了保持Android的質量,Google聘請了專職工程師,產品經理,用戶界面設計師,質量保證測試人員以及將現代設備推向市場所需的所有其他角色。

因此,我們維護了許多代碼行,以將當前的穩定版Android與不穩定的實驗工作區分開來。我們將Android代碼行的開源管理和維護納入了更大的產品開發週期。

AOSP代碼管理

下圖描述了AOSP代碼管理和發布背後的概念。

碼線圖
圖1. AOSP代碼和發行版
  1. 在任何時候,都會有最新版本的Android平台。這通常採用樹中分支的形式。
  2. 設備構建者和貢獻者可以使用當前最新版本,修復錯誤,啟動新設備,嘗試新功能等等。
  3. 同時,Google會根據產品的需求和目標在內部開發下一版Android平台和框架。我們通過與旗艦設備上的設備合作夥伴合作開發Android的下一個版本,該設備的規格被選擇為將Android推向我們認為應該發展的方向。
  4. 當第n + 1個版本準備就緒時,它將發佈到公共源代碼樹並成為新的最新版本。

條款和警告

  • 發行版對應於Android平台的正式版本,例如1.5或8.1。該平台的發行版對應於AndroidManifest.xml文件的SdkVersion字段中的版本,並在源樹的frameworks/base/api中定義。
  • 上游項目是一個開源項目,Android堆棧從該項目中提取代碼。除了Linux內核和WebKit之類的項目之外,我們還將繼續遷移一些半自治的Android項目(例如ART,Android SDK工具和Bionic)作為上游項目。通常,這些項目是完全在公共樹中開發的。對於某些上游項目,開發人員直接為上游項目做出貢獻。有關詳細信息,請參見上游項目 。在這兩種情況下,快照都會定期拉入版本。
  • 在任何時候,發行代碼行(可能由git中的多個分支組成)都被視為給定Android平台版本的唯一規范源代碼。 OEM和其他構建設備的團隊應僅從發布分支中提取。
  • 建立了實驗代碼行以捕獲社區中的更改,以便可以著眼於穩定性來進行迭代。
  • 證明穩定的更改最終被拉入發布分支。這僅適用於錯誤修復,應用程序改進以及不影響平台API的其他更改。
  • 必要時將更改從上游項目(包括Android上游項目)拉入發布分支。
  • 第n + 1個版本(框架和平台API的下一個主要版本)由Google內部開發。有關詳細信息,請參閱專用代碼行
  • 必要時將更改從上游,發布和實驗分支拉到Google的私有分支。
  • 當下一版本的平台API穩定並經過全面測試後,Google會削減下一平台版本(特別是新的SdkVersion )的發布。這對應於內部代碼行已成為公共發布分支,以及新的當前平台代碼行。
  • 剪切新的平台版本時,會同時創建相應的實驗代碼行。

私人代碼行

上面的源代碼管理策略包括一個代碼行,Google對其進行保密以將注意力集中在當前的Android公開版本上。

OEM和其他設備製造商自然希望將設備與最新版本的Android一起交付。同樣,應用程序開發人員也不想處理過多的平台版本。同時,Google保留將Android作為平台和產品的戰略方向的責任。我們的方法專注於少數旗艦設備來驅動功能,同時確保對Android相關知識產權的保護。

因此,Google經常擁有來自第三方的機密信息,並且在獲得適當的保護之前,必須避免洩露敏感功能。此外,如果一次存在太多平台版本,則平台將面臨真正的風險。出於這些原因,我們已經設計了開源項目(包括第三方貢獻),以專注於當前公開穩定的Android版本。在該平台的下一版本上的深入開發會秘密進行,直到準備好正式發佈為止。

我們認識到許多貢獻者不同意這種方法,我們尊重他們的觀點。但是,這是我們認為最好的方法,也是我們選擇為Android實現的方法。