安卓軟件管理

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 相關智慧財產權的保護。

因此,谷歌經常擁有來自第三方的機密信息,並且在獲得適當的保護之前必須避免洩露敏感功能。此外,如果同時存在太多平台版本,平台就會面臨真正的風險。基於這些原因,我們建立了開源專案(包括第三方貢獻),重點是目前公開的 Android 穩定版本。該平台下一版本的深入開發是私下進行的,直到準備好正式發布為止。

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