Android オープンソース プロジェクト(AOSP)では、OEM やデバイス メーカーによって実装、移植され、独自のハードウェア上で実行されるソフトウェア スタック全体を維持管理しています。Android の品質を維持するため、Google は、フルタイムのエンジニア、プロダクト マネージャー、ユーザー インターフェース デザイナー、品質保証テスターなど、最新のデバイスを市場に投入するうえで必要な人員を割り当てています。
また、多数のコードラインも管理しており、Android の現在の安定版と、変更の可能性がある試験運用版を明確に区分しています。オープンソースの管理と Android コードラインのメンテナンスは、大規模なプロダクト開発サイクルの一環として行われています。
AOSP におけるコード管理
AOSP におけるコード管理とリリースに関する概要を以下の表に示します。
- Android プラットフォームには、どの時点でも常に最新のリリースが存在しています。通常は、ツリー内のブランチの形式をとっています。
- デバイス メーカーやコントリビューターは、現在の最新リリースを使用して作業を行います。バグの修正、新しいデバイスの立ち上げ、新機能の試験運用などもこのリリースで行います。
- それと並行して Google は、プロダクトのニーズと目標に合わせて Android プラットフォームとフレームワークの次期バージョンを社内で開発しています。Android の次期バージョンの開発にあたっては、デバイス パートナーと協力し、Android の今後の方向性を踏まえて仕様を選定したフラッグシップ デバイスを使用します。
- 現行バージョンの次のバージョンの準備が完了すると、公開ソースツリーに公開されて、最新のリリースとなります。
規約と注意事項
-
リリースは、1.5 や 8.1 など、Android プラットフォームの正式バージョンに対応しています。プラットフォームのリリースは、
AndroidManifest.xml
ファイルにあるSdkVersion
フィールドのバージョンに対応しており、ソースツリーのframeworks/base/api
内で定義されます。 - アップストリーム プロジェクトは、Android スタックがコードを取り込む元となるオープンソースのプロジェクトです。Linux カーネルや WebKit などのプロジェクトに加え、ART、Android SDK Tools、Bionic などの半自律型 Android プロジェクトがアップストリーム プロジェクトとして機能するように移行作業が続けられています。一般に、このようなプロジェクトはすべて公開ツリーで開発されます。アップストリーム プロジェクトによっては、デベロッパーによるコントリビューションを直接受け付けることがあります。詳細については、アップストリーム プロジェクトをご覧ください。いずれの場合も、スナップショットが定期的にリリースに取り込まれます。
- リリース コードラインは、Git 内の複数のブランチで構成される場合もありますが、特定の Android プラットフォーム バージョンに対して、常に唯一の正規ソースコードと見なされます。OEM など、デバイスを開発するグループがソースコードを取り込む際は、リリース ブランチからに限るようにしてください。
- 試験運用版のコードラインは、開発コミュニティから提示された変更要素を取り入れ、安定版に向けて開発を繰り返していくことを目的に用意されます。
- 安定性が確認された変更要素は、最終的にリリース ブランチに取り込まれます。ただし、適用されるのは、バグ修正やアプリの改善など、プラットフォームの API に影響を与えない変更要素に限られます。
- 必要に応じて、変更要素がアップストリーム プロジェクト(Android のアップストリーム プロジェクトも含む)からリリース ブランチに取り込まれます。
- 現行バージョンの次のバージョン(フレームワークとプラットフォーム API の次期メジャー バージョン)の開発は、Google の内部で行われます。詳細については、非公開のコードラインをご覧ください。
- 必要に応じて、変更要素がアップストリーム ブランチや、リリース ブランチ、試験運用ブランチから Google の非公開ブランチに取り込まれます。
- 次期バージョンのプラットフォーム API が安定し、すべてのテストが完了すると、Google は次期プラットフォーム バージョン(新しい
SdkVersion
)のリリースを正式公開します。このリリースは、内部コードラインの公開リリース ブランチと、新しい現行プラットフォーム コードラインに該当します。 - 新しいプラットフォーム バージョンが正式公開されると、それと同時に、対応する試験運用版コードラインが作成されます。
非公開のコードライン
上記のソースコード管理方針の対象には、現行公開バージョンの Android に焦点を集めるよう、Google が非公開にしているコードラインも含まれます。
OEM や各種デバイス メーカーは、デバイスをリリースする際、通常は最新バージョンの Android を搭載することを希望します。同様に、アプリ デベロッパーは、必要以上に多数のプラットフォーム バージョンに対応することを望みません。一方 Google は、プラットフォームおよびプロダクトとしての Android の戦略的な方向性を示す責任を担っています。そこで、Google は、少数のフラッグフラグシップ デバイスに重点を置いて各種機能の開発を進めつつ、Android 関連の知的財産権を確実に保護するというアプローチを採用しています。
その結果として、Google は頻繁にサードパーティの機密情報を所有することになり、適切な保護措置を講じるまでは機密性の高い機能の開示を控える必要があります。また、あまりに多数のプラットフォーム バージョンが同時に存在していると、プラットフォームに大きなリスクが生じます。このような理由から、現在公開されている安定版の Android に焦点を集めるように、サードパーティによるコントリビューションも含めたオープンソース プロジェクトを構築しています。次期バージョンのプラットフォームにおける中核部分の開発は、公式リリースの準備が整うまでは非公開で行われます。
Google では、このようなアプローチに賛同していないコントリビューターがいることを認識しており、そうした視点を尊重もしています。しかしながら、現在のところはこのアプローチが最善であると考えて、Android の実装方法として採用しています。