よくある質問

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このページでは、いくつかのよく寄せられる質問 (FAQ) に対する回答を提供します。

オープンソース

Android オープンソース プロジェクトとは何ですか?

Android オープン ソース プロジェクト (AOSP) は、Android を構成する人、プロセス、およびソース コードを指します。

人々はプロジェクトを監督し、ソース コードを開発します。プロセスは、ソフトウェアの開発を管理するために使用するツールと手順です。最終的な結果は、携帯電話やその他のデバイスで使用できるソース コードです。

Android のソース コードを公開したのはなぜですか?

Google は、モバイル アプリを立ち上げた私たち自身の経験に応えて、Android プロジェクトを開始しました。私たちは、通信事業者、OEM、開発者が革新的なアイデアを実現するために使用できるオープン プラットフォームを常に提供したいと考えていました。また、単一の業界プレーヤーが他のプレーヤーのイノベーションを制限または制御できないように、中心的な障害点を回避したいと考えていました。 AOSP に関する私たちの最も重要な目標は、オープンソースの Android ソフトウェアが可能な限り広く互換性を持って実装され、すべての人の利益になるようにすることです。

Android とはどのようなオープンソース プロジェクトですか?

Google はコア Android オープンソース プラットフォームの開発を監督し、強力な開発者およびユーザー コミュニティの作成に取り組んでいます。ほとんどの場合、Android ソース コードは、コピーレフトライセンスではなく、寛容な Apache License 2.0 の下でライセンスされています。 Apache 2.0 ライセンスを選択したのは、それが Android ソフトウェアの広範な採用を促進すると信じているからです。詳細については、ライセンスを参照してください。

Google が Android を担当するのはなぜですか?

ソフトウェア プラットフォームの立ち上げは複雑です。オープン性は、プラットフォームの長期的な成功に不可欠です。オープン性は開発者からの投資を引き付け、公平な競争条件を保証するからです。また、プラットフォームはユーザーにとって魅力的な製品でなければなりません。

Google は、Android が完全に競争力のあるソフトウェア プラットフォームであることを保証するために必要な専門的なエンジニアリング リソースを投入しています。 Google は Android プロジェクトを本格的な製品開発業務として扱い、Android を実行する優れたデバイスを確実に市場に投入するために必要なビジネス取引を行います。

Android がユーザーにとって成功するようにすることで、プラットフォームとして、またオープンソース プロジェクトとしての Android の活力を確保するのに役立ちます。結局、誰が失敗した製品のソース コードを欲しがるでしょうか?

Google の目標は、Android に関するエコシステムを成功させることです。誰でも自分のニーズに合わせてソフトウェアを変更して配布できるように、Android のソース コードを公開しました。

Android 製品開発に対する Google の全体的な戦略はどのようなものですか?

競争の激しい市場に優れたデバイスをリリースします。次に、次のバージョンとしてコア プラットフォームに加えたイノベーションと機能強化を組み込みます。

実際には、これは、Android エンジニアリング チームが少数の「フラグシップ」デバイスに焦点を当て、それらの製品の発売をサポートする Android ソフトウェアの次のバージョンを開発することを意味します。これらのフラグシップ デバイスは、製品のリスクの多くを吸収し、新しい機能を利用するより多くのデバイスをフォローアップする広範な OEM コミュニティに道を切り開きます。このようにして、Android プラットフォームが実際のデバイスのニーズに合わせて進化するようにします。

Android ソフトウェアはどのように開発されていますか?

Android の各プラットフォーム バージョン (1.5 や 8.1 など) には、オープン ソース ツリーに対応するブランチがあります。最新のブランチは、現在の安定したブランチ バージョンと見なされます。これは、メーカーがデバイスに移植するブランチです。このブランチは、常にリリースに適した状態に保たれています。

同時に、大規模な次世代機能などの投機的な貢献が開発されている現在の実験的なブランチがあります。バグ修正やその他の貢献は、必要に応じて実験的ブランチから現在の安定版ブランチに含めることができます。

最後に、Google は、フラッグシップ デバイスの開発と並行して、Android プラットフォームの次のバージョンに取り組んでいます。このブランチは、必要に応じて実験的ブランチと安定版ブランチから変更を取り込みます。

コードライン、ブランチ、およびリリースの詳細については、 AOSP コード管理を参照してください。

Android の一部が非公開で開発されているのはなぜですか?

通常、デバイスを市場に投入するには 1 年以上かかります。そしてもちろん、デバイス メーカーは、できる限り最新のソフトウェアを出荷したいと考えています。一方、開発者は、アプリを作成するときにプラットフォームの新しいバージョンを常に追跡することを望んでいません。どちらのグループも、製品を出荷することと遅れを取りたくないことの間で緊張を感じています。

これに対処するために、コア プラットフォーム API を含む Android の次期バージョンの一部がプライベート ブランチで開発されています。これらの API は、Android の次のバージョンを構成します。私たちの目的は、プラットフォームの次のバージョンを作成する間、Android ソース コードの現在の安定バージョンに注意を向けることです。これにより、開発者と OEM は、最新の状態に追いつくためだけに未完成の将来の作業を追跡することなく、単一のバージョンを使用できます。アプリケーションの互換性に関係のない Android システムの他の部分は、オープンに開発されています。時間の経過とともに、これらのパーツの多くをオープン開発に移行することが私たちの意図です。

ソース コードのリリースはいつ行われますか?

準備ができたら。ソース コードのリリースは、かなり複雑なプロセスです。 Android の一部はオープンに開発されており、そのソース コードはいつでも利用できます。他の部分は最初にプライベート ツリーで開発され、そのソース コードは次のプラットフォーム バージョンの準備ができたときにリリースされます。

一部のリリースでは、コア プラットフォーム API の準備が十分に進んでいるため、デバイスのリリース前にソース コードを公開して早期に確認することができます。他のリリースでは、これは不可能です。いずれの場合も、バージョンが安定していると判断し、開発プロセスが許可された時点で、プラットフォーム ソースをリリースします。

Android の新しいバージョンのソース コードをリリースするにはどうすればよいですか?

Android プラットフォームの新しいバージョンのソース コードをリリースすることは重要なプロセスです。最初に、ソフトウェアはデバイスのシステム イメージに組み込まれ、電話が展開される地域の政府規制認証など、さまざまな形式の認証を受けます。このコードは、オペレータ テストも通過します。これは、ソフトウェアのバグを検出するのに役立つため、プロセスの重要なフェーズです。

リリースが規制当局と運用者によって承認されると、メーカーはデバイスの大量生産を開始し、ソース コードのリリースを開始します。

大量生産と同時に、Google チームはオープン ソース リリースを準備するためのいくつかの取り組みを開始します。これらの取り組みには、最終的な API の変更、ドキュメントの更新 (たとえば、認定テスト中に行われた変更を反映するため)、新しいバージョン用の SDK の準備、およびプラットフォームの互換性情報の開始が含まれます。

当社の法務チームは、コードをオープン ソースにリリースするための最終承認を行います。オープン ソースのコントリビューターが、コントリビューションの知的財産権を証明するコントリビューター ライセンス契約に署名する必要があるのと同様に、Google はソースがコントリビューションを許可されていることを確認する必要があります。

量産開始からソフトウェアのリリースまでは通常1か月程度かかるため、ソースコードのリリースは端末がユーザーに届くのとほぼ同時に行われることが多いです。

AOSP は Android 互換性プログラムとどのように関係していますか?

Android オープン ソース プロジェクトは、Android ソフトウェアの保守と新しいバージョンの開発を行っています。オープン ソースであるため、このソフトウェアは、同じソースに基づく他のデバイスと互換性のないデバイスの開発など、あらゆる目的に使用できます。

Android 互換性プログラムの機能は、開発者が作成したサードパーティ アプリと互換性のある Android のベースライン実装を定義することです。 Android 互換のデバイスは、Google Play を含む Android エコシステムに参加する資格があります。互換性要件を満たさないデバイスは、そのエコシステムの外に存在します。

つまり、Android 互換性プログラムは、ソース コードの派生物を実行するだけのデバイスから Android 互換デバイスを分離する方法です。 Android ソース コードのすべての使用を歓迎しますが、Android エコシステムに参加するには、プログラムによってデバイスが Android 互換であると識別される必要があります。

Android に貢献するにはどうすればよいですか?

バグを報告したり、Android 用のアプリを作成したり、Android オープン ソース プロジェクトにソース コードを提供したりできます。

私たちが受け入れるコード寄稿の種類には制限があります。たとえば、完全な C++ ベースの環境など、別のアプリケーション API を提供したいと考える人がいるかもしれません。 Android はアプリケーションを ART ランタイムで実行することを推奨しているため、その貢献は断ります。同様に、ライセンスの目標に適合しない GPL または LGPL ライブラリなどの寄稿は受け付けません。

ソース コードの寄稿に関心のある方は、作業を開始する前に、 Android コミュニティページに記載されているチャネルを通じて当社に連絡することをお勧めします。詳細については、貢献する を参照してください。

Android コミッターになるにはどうすればよいですか?

Android オープン ソース プロジェクトには、実際にはコミッターの概念がありません。すべての投稿 (Google 社員が作成したものを含む) は、Android エンジニアリング プロセスの一部である Gerrit と呼ばれるウェブベースのシステムを通過します。このシステムは git ソース コード管理システムと連携して動作し、ソース コードのコントリビューションをきれいに管理します。

提出時には、指定された承認者による変更の承認が必要です。通常、承認者は Google の従業員ですが、出所に関係なく、同じ承認者がすべての送信に対して責任を負います。

詳細については、パッチの提出を参照してください。

トップに戻る

互換性

Androidの「互換性」とは?

Android 互換デバイスは、サードパーティの開発者が Android SDK と NDK を使用して作成したアプリケーションを実行できるデバイスと定義されています。これをフィルターとして使用して、Android アプリのエコシステムに参加できるデバイスと参加できないデバイスを分離します。適切に互換性のあるデバイスについては、デバイス メーカーは Android 商標の使用許可を求めることができます。互換性のないデバイスは Android ソース コードから派生したものであり、Android 商標の使用は許可されていません。

つまり、互換性は Android アプリのエコシステムに参加するための前提条件です。 Android ソースコードはどなたでもご利用いただけます。ただし、デバイスに互換性がない場合、そのデバイスは Android エコシステムの一部とは見なされません。

互換性における Google Play の役割は何ですか?

Android 互換デバイスのデバイス メーカーは、Google Play クライアント ソフトウェアのライセンスを取得することができます。ライセンスを取得したデバイスは Android アプリ エコシステムの一部となり、ユーザーは互換性のあるすべてのデバイスで共有されているカタログから開発者のアプリをダウンロードできます。ライセンスは、互換性のないデバイスでは利用できません。

Androidに対応できる端末は?

Android ソフトウェアは、サードパーティ製アプリが正しく動作しないデバイスを含め、さまざまなデバイスに移植できます。 Android 互換性定義ドキュメント(CDD) は、互換性があると見なされる特定のデバイス構成を詳しく説明しています。

たとえば、Android ソース コードを移植してカメラのない電話で実行することはできますが、CDD ではすべての電話にカメラが必要です。これにより、開発者はアプリを作成する際に一貫した一連の機能に依存できます。

CDD は、市場の現実を反映するために進化し続けています。たとえば、CDD のバージョン 1.6 は携帯電話のみをサポートしています。しかし、バージョン 2.1 では、デバイスがテレフォニー ハードウェアを省略できるようになり、タブレット スタイルの音楽プレーヤーなどの非電話デバイスとの互換性が可能になります。これらの変更を行う際に、Google Play を拡張して、開発者がアプリを利用できる場所を引き続き管理できるようにします。テレフォニーの例を続けると、SMS テキスト メッセージを管理するアプリはメディア プレーヤーでは役に立たないため、Google Play では開発者がそのアプリを電話デバイスのみに制限することができます。

私のデバイスが互換性がある場合、自動的に Google Play とブランディングにアクセスできますか?

いいえ。アクセスは自動ではありません。 Google Play は Google が運営するサービスです。互換性を達成することは、Google Play ソフトウェアとブランドへのアクセスを取得するための前提条件です。デバイスがAndroid 互換デバイスとして認定された後、デバイス メーカーは、 Google モバイル サービスのライセンス供与に含まれる連絡フォームに記入して、Google Play へのアクセスを求める必要があります。お役に立てることがあればご連絡いたします。

メーカーではない場合、どうすれば Google Play を入手できますか?

Google Play は、デバイスを出荷する携帯電話メーカーにのみライセンス供与されています。特定のケースに関する質問については、 android-partnerships@google.comにお問い合わせください。

マップなどの Android 用 Google アプリにアクセスするにはどうすればよいですか?

YouTube、Google マップ、Gmail などの Android 用 Google アプリは、Android の一部ではなく、個別にライセンスされる Google のプロパティです。これらのアプリに関するお問い合わせは、 android-partnerships@google.comまでご連絡ください。

互換性は必須ですか?

いいえ。Android 互換性プログラムはオプションです。 Android のソース コードは公開されているため、誰でもそれを使用してあらゆる種類のデバイスを構築できます。ただし、製造元が自社製品で Android の名前を使用したい場合、または Google Play にアクセスしたい場合は、まず自社のデバイスに互換性があることを証明する必要があります。

互換性認証の費用はいくらですか?

デバイスの Android 互換性を取得するのに費用はかかりません。 Compatibility Test Suite はオープン ソースであり、誰でもデバイス テストに使用できます。

互換性にはどのくらいかかりますか?

プロセスは自動化されています。互換性テスト スイートは、互換性を確認するために Google に提供できるレポートを生成します。最終的には、これらのレポートを公開データベースにアップロードするためのセルフサービス ツールを提供する予定です。

互換性の定義を決定するのは誰ですか?

Google は、プラットフォームおよび製品としての Android の全体的な方向性に責任を負っているため、Google はリリースごとに互換性定義ドキュメント (CDD) を維持しています。インプットを提供するさまざまな OEM と協議して、新しい Android バージョンの CDD のドラフトを作成します。

Android の各バージョンは、新しいデバイスでどのくらいの期間サポートされますか?

Android のコードはオープン ソースであるため、誰かが古いバージョンを使用してデバイスを起動することを防ぐことはできません。代わりに、Google は、廃止されたと見なされるバージョンで使用するための Google Play クライアント ソフトウェアのライセンスを取得しないことを選択しました。これにより、誰でも古いバージョンの Android を出荷し続けることができますが、それらのデバイスは Android の名前を使用せず、互換性がないかのように Android アプリのエコシステムの外に存在します。

デバイスのユーザー インターフェイスが異なっていても、互換性を保つことはできますか?

Android 互換性プログラムは、デバイスがサードパーティ アプリケーションを実行できるかどうかを決定します。デバイスに同梱されているユーザー インターフェイス コンポーネント (ホーム画面、ダイヤラー、配色など) は、通常、サード パーティのアプリにはあまり影響しません。そのため、デバイス ビルダーはユーザー インターフェイスを自由にカスタマイズできます。互換性定義ドキュメントは、OEM がサードパーティ アプリに影響を与える領域のシステム ユーザー インターフェイスを変更することを許可される程度を制限します。

新しい Android バージョンの互換性定義はいつリリースされますか?

私たちの目標は、対応する Android プラットフォームのバージョンが十分に収束したときに、Android 互換性定義ドキュメント (CDD) の新しいバージョンをリリースすることです。最初のフラグシップ デバイスがそのソフトウェアと共に出荷される前に、Android ソフトウェア バージョンの CDD の最終ドラフトをリリースすることはできませんが、最終的な CDD は常に最初のデバイスの後にリリースされます。ただし、実用的な場合はいつでも、CDD のドラフト バージョンをリリースします。

デバイス メーカーの互換性主張はどのように検証されますか?

Android デバイスの互換性に関する検証プロセスはありません。ただし、デバイスに Google Play を含める場合、Google は通常、Google Play クライアント ソフトウェアのライセンスに同意する前にデバイスの互換性を検証します。

互換性を主張しているデバイスに互換性の問題があることが後で判明した場合はどうなりますか?

通常、Google と Google Play ライセンシーとの関係により、問題を修正する更新されたシステム イメージをリリースするようデバイスの製造元に依頼することができます。

トップに戻る

互換性テスト スイート

CTS の目的は何ですか?

互換性テスト スイートは、デバイス メーカーがデバイスの互換性を確認し、検証のためにテスト結果を報告するために使用するツールです。 CTS は、互換性の問題を早期に発見するために、エンジニアリング プロセス全体で OEM が頻繁に実行することを目的としています。

CTS はどのようなことをテストしますか?

CTS は現在、サポートされているすべての Android の厳密に型指定された API が存在し、正しく動作することをテストしています。また、アプリケーションのライフサイクルやパフォーマンスなど、API 以外のシステムの動作もテストします。インテントなどのソフトAPI をテストするために、将来の CTS バージョンでサポートを追加する予定です。

CTS レポートは公開されますか?

はい。現在実装されていませんが、Google は、OEM が CTS レポートを公開して誰でも閲覧できるようにするための Web ベースのセルフサービス ツールを提供する予定です。メーカーは、CTS レポートを好きなだけ多くのユーザーと共有できます。

CTS のライセンスはどのように取得されますか?

CTS は、大部分の Android が使用するのと同じ Apache Software License 2.0 の下でライセンスされています。

CTS は寄付を受け付けますか?

はい、お願いします! Android オープンソース プロジェクトでは、他のコンポーネントと同様に、CTS を改善するための貢献を受け付けています。実際、CTS テスト ケースの対象範囲と品質を改善することは、Android を支援する最善の方法の 1 つです。

誰でも既存のデバイスで CTS を使用できますか?

互換性定義ドキュメントでは、互換性のあるデバイスがadbデバッグ ユーティリティを実装する必要があります。これは、互換性のあるデバイス (小売店で入手できるデバイスを含む) で CTS テストを実行できる必要があることを意味します。

コーデックは CTS によって検証されていますか?

はい。すべての必須コーデックは CTS によって検証されます。

トップに戻る