Android は、各種のフォーム ファクタを持つさまざまなデバイス向けのオペレーティング システムです。Android のドキュメントとソースコードは誰でも使用でき、Android オープンソース プロジェクト(AOSP)として一般公開されています。AOSP を使用して、ご自身のデバイスに適した Android OS のカスタム バリアントを作成できます。
AOSP は、業界プレーヤー間でイノベーションを制限または制御するような主要な障害ポイントが生じないように設計されています。そのため、AOSP はソースコードがオープンでカスタマイズと移植を自由に行える、製品版品質の完全なデベロッパー プロダクトです。
このセクションは、初めてこのプラットフォームを使用し、重要な開発作業を行う AOSP デベロッパーに役立ちます。
必要な用語
以下に、このスタートガイド ドキュメントで使用される用語とその定義を示します。読み進める前に、各定義をよく理解してください。
- Android アプリ デベロッパー
Android アプリ デベロッパーとは、Android アプリ、つまり Android 上で実行されるアプリを作成するデベロッパーです。アプリ デベロッパーは、ファースト パーティ(1P)とサードパーティ(3P)の 2 つに分類されます。
- Android ファーストパーティ アプリ デベロッパー
- AOSP System API にアクセスでき、デバイス メーカーの特権アプリを作成する Android アプリ デベロッパー。
- Android サードパーティ アプリ デベロッパー
- Android の公開 SDK のみを使用して Android アプリを作成する Android アプリ デベロッパー。
Android 用サードパーティ製アプリを開発する場合は、developers.android.com
をご覧ください。このウェブサイトの情報は、AOSP を直接活用するアプリのみを対象としています。
- Android Debug Bridge(adb)
- ワークステーションと仮想デバイス、ソフトウェアでエミュレートされたデバイス、実機とのやり取りを可能にするコマンドライン ツール(
adb
)。 - Android 互換デバイス
- サードパーティ デベロッパーが Android SDK および NDK を使用して作成したサードパーティ製アプリを実行できるデバイス。Android 互換デバイスは、互換性定義ドキュメント(CDD)の要件に準拠し、互換性テストスイート(CTS)に合格している必要があります。Android 互換デバイスは Android エコシステムに参加でき、Android Play ストアのライセンス、Google モバイル サービス(GMS)アプリスイートのライセンスを取得できる可能性があるほか、Android 商標の使用が許可されています。Android ソースコードは誰でも使用できますが、Android エコシステムに参加していると見なされるためには、デバイスが Android 互換である必要があります。互換性と CTS について詳しくは、Android 互換性プログラムの概要 をご覧ください。
- 互換性定義ドキュメント(CDD)
- Android 互換デバイスに関するソフトウェア要件とハードウェア要件が列挙されたドキュメント。
- コントリビューター
AOSP ソースコードに対して貢献を行う人。Google などの企業の従業員だけでなく、企業に所属しない個人もコントリビューターになることができます。AOSP のコントリビューターはすべて、同じツールを使用し、同じコード審査プロセスに従い、同じコーディング スタイルに準拠します。AOSP を使用するからといって、コントリビューターになる必要はありません。他の開発者が使用するコードを投稿しなくても、AOSP をダウンロードして、自分のニーズに応じて変更を加え、デバイスにデプロイすることができます。
Google が承認するコードのコントリビューションについては制限があります。たとえば、完全な C++ ベース環境など、代替的なアプリケーション API をコントリビューションしようとしても、承認されることはありません。Android では、ART ランタイム環境でアプリを実行することが推奨されています。同様に、AOSP のライセンス目標に適合しない GPL ライブラリや LGPL ライブラリなどのコントリビューションも承認されません。
ソースコードのコントリビューションに関心をお持ちの場合は、作業を始める前に Google にお問い合わせください。
- 互換性テストスイート(CTS)
無料でありながら商用レベルの品質を持つテストスイート。AOSP のバイナリまたはソースとしてダウンロードできます。CTS は、日々のワークフローに組み込まれるように設計された単体テストの集まりです。非互換性を明らかにし、開発プロセス全体を通じてソフトウェアの互換性を保つことを目的としたツールです。
- Cuttlefish
リモート環境(Google Cloud Engine などのサードパーティ クラウド サービスを使用)でも、ローカル環境(Linux x86 マシン上)でも実行できる、カスタマイズ可能な仮想 Android 搭載デバイス。
- デベロッパー
AOSP のコンテキストでは、いかなる方法であれ AOSP を利用する人はデベロッパーです。このドキュメントを読む可能性がある、相手先ブランド製品製造企業(OEM)、ハンドセット メーカー、携帯通信会社、システム オン チップ(SoC)製造業者など、さまざまな人を総称して、「デベロッパー」という用語を使用しています。
- Google モバイル サービス(GMS)
デバイスにプリインストールできる Google アプリおよび API の集合。
- ターゲット
特定のモデルやフォーム ファクタなど、特定のバージョンのデバイス。たとえば、
aosp_cf_x86_64_phone-userdebug
は、Cuttlefish エミュレータ上で実行するために作られた、デバッグ情報を含む x86 65 MB スマートフォンを表します。
ガバナンスの理念
Android を最初に開発したのは、Google が主導する、オープン ハンドセット アライアンス(OHA)という企業グループです。現在では、OHA に当初から属していた企業も属していなかった企業も含む多くの企業が、Android に多額の投資を行っています。こうした企業は、Android を改善して Android デバイスを市場に投入するために、大量のエンジニアリング リソースを割いています。
多くの企業が Android に投資してきたのは、オープン プラットフォームの必要性を信じているからこそです。Android は、(フリー ソフトウェアとは対照的に)意図的かつ明示的なオープンソースの取り組みです。ニーズを共有する組織グループは、共有プロダクトの単一の実装で共同作業するためにリソースをプールしてきました。何よりもまず、Android の理念は実用本位です。その目標は、個々のコントリビューターが調整およびカスタマイズできる共有プロダクトです。
もちろん、管理されないカスタマイズにより、互換性のない実装が生まれる可能性はあります。これを防ぐために、Android オープンソース プロジェクト(AOSP)は、Android 互換性プログラムを管理しています。これは、「Android 互換」の意味と、デバイス ビルダーが「Android 互換」を実現するために何が必要かを詳細に示すものです。Android のソースコードは、誰であれ任意の目的で使用できます。Google はすべての正当な使用を歓迎します。ただし、OHA メンバーが開発している Android 関連アプリの共有エコシステムにデバイス ビルダーが参加するには、Android 互換性プログラムに参加していただく必要があります。
AOSP を主導する Google は、Android を管理し、さらに開発を進めています。Android は複数のサブプロジェクトで構成されていますが、AOSP はプロジェクト管理に活動を限定しています。Google は Android を単一の総合的なソフトウェア プロダクトと捉えて管理しており、Android の配布、仕様、交換用パーツの収集には関わっていません。Google の目的は、デバイス ビルダーが Android をデバイスに移植することです。デバイス ビルダーは仕様の実装や配布のキュレートは行いません。
次のステップ
AOSP を初めて使用する場合や AOSP 開発のチュートリアルをご希望の場合は、AOSP チュートリアルにお進みください。
デバイスを Android 互換にする必要があると思われる場合は、Android 互換性プログラムをご覧ください。
AOSP のバックグラウンド(プラットフォームへの Google の参加など)について詳しくは、AOSP に関するよくある質問をご覧ください。