Androidソフトウェア管理

Android オープン ソース プロジェクト (AOSP) は、OEM やその他のデバイス実装者によって移植され、独自のハードウェアで実行される完全なソフトウェア スタックを維持しています。 Android の品質を維持するために、Google はフルタイムのエンジニア、プロダクト マネージャー、ユーザー インターフェース デザイナー、品質保証テスター、および最新のデバイスを市場に投入するために必要なその他すべての役割に貢献してきました。

したがって、現在の安定版 Android と不安定な実験的作業を明確に区別するために、多くのコードラインを維持しています。 Android コードラインのオープン ソース管理とメンテナンスは、より大きな製品開発サイクルに組み込まれています。

AOSP コード管理

下の図は、AOSP コード管理とリリースの背後にある概念を示しています。

コードライン図
図 1. AOSP のコードとリリース
  1. Android プラットフォームには常に最新のリリースがあります。これは通常、ツリー内のブランチの形を取ります。
  2. デバイス ビルダーとコントリビューターは、現在の最新リリースで作業し、バグを修正し、新しいデバイスを立ち上げ、新しい機能を試しています。
  3. 並行して、Google は製品のニーズと目標に応じて、Android プラットフォームとフレームワークの次のバージョンに社内で取り組んでいます。 Android の次のバージョンは、デバイス パートナーと協力して、Android をあるべき方向に押し進めるように仕様が選択されたフラグシップ デバイスで開発されます。
  4. n+1 番目のバージョンの準備が整うと、パブリック ソース ツリーに公開され、新しい最新リリースになります。

規約と注意事項

  • リリースは、1.5 や 8.1 など、Android プラットフォームの正式なバージョンに対応しています。プラットフォームのリリースは、 AndroidManifest.xmlファイルのSdkVersionフィールドのバージョンに対応し、ソース ツリーのframeworks/base/api内で定義されます。
  • アップストリームプロジェクトは、Android スタックがコードをプルするオープン ソース プロジェクトです。 Linux カーネルや WebKit などのプロジェクトに加えて、ART、Android SDK ツール、Bionic などの一部の半自律型 Android プロジェクトをアップストリーム プロジェクトとして機能するように移行し続けています。通常、これらのプロジェクトは完全にパブリック ツリーで開発されます。一部のアップストリーム プロジェクトでは、開発者がアップストリーム プロジェクトに直接貢献します。詳細については、アップストリーム プロジェクトを参照してください。どちらの場合も、スナップショットは定期的にリリースに取り込まれます。
  • 常に、リリース コードライン (git の複数のブランチで構成される場合があります) は、特定の Android プラットフォーム バージョンの唯一の正規ソース コードと見なされます。デバイスを構築する OEM およびその他のグループは、リリース ブランチからのみプルする必要があります。
  • 実験的なコードラインが確立され、コミュニティからの変更をキャプチャして、安定性を目指して反復できるようにします。
  • 安定していることが証明された変更は、最終的にリリース ブランチに取り込まれます。これは、バグ修正、アプリケーションの改善、およびプラットフォームの API に影響を与えないその他の変更にのみ適用されます。
  • 変更は、必要に応じてアップストリーム プロジェクト (Android アップストリーム プロジェクトを含む) からリリース ブランチに取り込まれます。
  • n+1 番目のバージョン (フレームワークおよびプラットフォーム API の次のメジャー バージョン) は、Google によって内部的に開発されています。詳細については、プライベート コードラインを参照してください。
  • 変更は、必要に応じてアップストリーム ブランチ、リリース ブランチ、実験的ブランチから Google のプライベート ブランチにプルされます。
  • 次のバージョンのプラットフォーム API が安定し、完全にテストされると、Google は次のプラットフォーム バージョン (具体的には新しいSdkVersion ) のリリースを打ち切ります。これは、内部コードラインがパブリック リリース ブランチになり、新しい現在のプラットフォーム コードラインに対応します。
  • 新しいプラットフォーム バージョンがカットされると、対応する実験的なコードラインが同時に作成されます。

プライベート コードライン

上記のソース管理戦略には、Android の現在の公開バージョンに注意を向けるために Google が非公開にしているコードラインが含まれています。

OEM やその他のデバイス ビルダーは当然、最新バージョンの Android を搭載したデバイスを出荷したいと考えています。同様に、アプリケーション開発者は、必要以上に多くのプラットフォーム バージョンを扱いたくありません。一方、Google はプラットフォームおよび製品としての Android の戦略的方向性について責任を負います。私たちのアプローチは、Android 関連の知的財産の保護を確保しながら機能を駆動する少数の主力デバイスに焦点を当てています。

その結果、Google はサード パーティからの機密情報を頻繁に所有しており、適切な保護が確保されるまで機密情報を開示することを控えなければなりません。さらに、一度に存在するプラットフォームのバージョンが多すぎると、プラットフォームに実際のリスクが生じます。これらの理由から、現在公開されている Android の安定したバージョンに焦点を当てるように、オープンソース プロジェクト (サードパーティの貢献を含む) を構築しました。プラットフォームの次のバージョンの詳細な開発は、公式リリースの準備が整うまで非公開で行われます。

多くの寄稿者がこのアプローチに反対していることを認識しており、彼らの見解を尊重します。ただし、これが最善と思われるアプローチであり、Android に実装するために選択したものです。