2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
AOSP の概要
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
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 をデバイスに移植することです。デバイス ビルダーは仕様の実装や配布のキュレートは行いません。
次のステップ
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-04-04 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-04-04 UTC。"],[],[],null,["# AOSP overview\n\n*Android* is an operating system for a wide array of devices with different\nform factors. The documentation and source code for Android is available to\nanyone as the *Android Open Source Project (AOSP)*. You can use\nAOSP to create custom variants of the Android OS for your own devices.\n\nAOSP is designed so that there's no central point of failure, where one\nindustry player restricts or controls the innovations of another. Therefore,\nAOSP is a full, production-quality developer product with source code open for\ncustomization and porting.\n\nThis section of documentation helps new AOSP developers get started with the\nplatform and to perform essential development tasks.\n\nRequired terms\n--------------\n\nFollowing is a list of terms and definitions used throughout the Getting\nStarted documentation. You should study each definition before continuing\nfurther.\n\n*Android app developer*\n\n: Android app developers writes *Android apps* or applications that run on\n Android. There are two classification of app developers: first-party (1p) and\n third-party (3p) app developers.\n\n *Android first-party app developer*\n : An Android app developer that has access to AOSP System APIs and writes\n privileged and device manufacturer apps.\n\n *Android third-party app developer*\n : An Android app developer who solely uses Android's public SDK to create\n Android apps.\n\nIf you want to develop third-party apps for Android, refer to\n[`developers.android.com`](https://developer.android.com/). The information on\nthis website is solely for those working directly with AOSP.\n\n*Android debug bridge (adb)*\n: A command-line tool (`adb`) that allows your workstation communicate with a\n virtual, software-emulated, or physical device.\n\n*Android-compatible device*\n: A device that can run any third-party app written by third-party developers\n using the Android SDK and NDK. Android-compatible devices must adhere to the\n requirements of the\n [Compatibility Definition Document (CDD)](#cdd) and pass the\n [Compatibility Test Suite (CTS)](#cts). Android-compatible\n devices are eligible to participate in the Android ecosystem which includes\n potential licensure of the Android Play Store, potential licensure the\n [Google Mobile Services (GMS)](#gms) suite of\n applications and APIs, and use of the Android trademark. Anyone is welcome to\n use the Android source code, but to be considered part of the Android ecosystem,\n a device must be Android-compatible. For further information on compatibility\n and CTS, see the\n [Android Compatibility Program overview](/docs/compatibility/overview)\n\n*Compatibility Definition Document (CDD)*\n: A document that enumerates the software and hardware requirements for an\n Android-compatible device.\n\n*Contributor*\n\n: A person who makes contributions to the AOSP source code. Contributors\n can be employees of Google, employees from other companies, and individuals\n with no company affiliation. Every AOSP contributor uses the same tools, follows\n the same code review process, and is subject to the same coding style. You\n don't have to be a contributor to use AOSP; you can download AOSP,\n modify it for your own needs, and deploy it on a device without contributing\n code for others to use.\n\n There are limits to the type of code contributions Google accepts. For example,\n you might want to contribute an alternative application API, such as a full\n C++-based environment. Google would decline that contribution because Android\n encourages applications to be run in the ART runtime. Similarly, Google doesn't\n accept contributions such as GPL or LGPL libraries that are incompatible with\n licensing goals.\n\n If you are interested in contributing source code,\n [contact Google](/docs/setup/community) prior to beginning work.\n\n*Compatibility Test Suite (CTS)*\n\n: A free, commercial-grade test suite, available for download as a binary or as\n source in AOSP. The CTS is a set of unit tests designed to be integrated into\n your daily workflow. CTS's intent is to reveal incompatibilities, and ensure\n that the software remains compatible throughout the development process.\n\n*Cuttlefish*\n\n: A configurable virtual Android-powered device that can run remotely, using\n third-party cloud offerings, such as Google Cloud Engine, and locally on Linux\n x86 machines.\n\n*Developer*\n\n: In the context of AOSP, a developer is anyone who works with AOSP in any\n way. The term \"developer\" is used to generically refer to the various people who\n might read this documentation, such as original equipment manufacturers\n (OEMs), handset makers, carriers, and System-on-a-Chip (SoC) creators.\n\n*Google Mobile Services (GMS)*\n\n: A collection of Google apps and APIs that can be pre-installed on devices.\n\n*Target*\n\n: A permutation of a device, such as a specific model or form factor. For\n example, `aosp_cf_x86_64_only_phone-userdebug` represents a x86 65MB phone with\n debugging information that is designed to run on the cuttlefish emulator.\n\nGovernance philosophy\n---------------------\n\nA group of companies known as the Open Handset Alliance (OHA), led by Google,\noriginated Android. Today, many companies---both original members of the OHA and\nothers---have invested heavily in Android. These companies have allocated\nsignificant engineering resources to improve Android and bring Android devices\nto market.\n\nThe companies that have invested in Android have done so because they believe an\nopen platform is necessary. Android is intentionally and explicitly an open\nsource effort (as opposed to free software); a group of organizations with\nshared needs has pooled resources to collaborate on a single implementation of a\nshared product. First and foremost, the Android philosophy is pragmatic. The\nobjective is a shared product that each contributor can tailor and customize.\n\nOf course, uncontrolled customization can lead to incompatible implementations.\nTo prevent incompatibility, the Android Open Source Project (AOSP) maintains\nthe\n[Android Compatibility program](/docs/compatibility/overview),\nwhich spells out what it means to be Android-compatible and what's required of\ndevice builders to achieve that status. Anyone can use the Android source code\nfor any purpose, and Google welcomes all legitimate uses. However, to take part\nin the shared ecosystem of applications OHA members are building around Android,\ndevice builders must participate in the Android Compatibility program.\n\nAOSP is led by Google, who maintains and further develops Android. Although\nAndroid consists of multiple subprojects, AOSP is strictly project management.\nGoogle views and manage Android as a single, holistic software product, not a\ndistribution, specification, or collection of replaceable parts. Google's intent\nis that device builders port Android to a device; they don't implement a\nspecification or curate a distribution.\n\nWhat's next?\n------------\n\n- If you're new to AOSP and want to run through a tutorial on AOSP\n development, proceed with [AOSP tutorial](/docs/setup/start).\n\n- If you believe that your device needs to be Android-compatible, refer to the\n [Android Compatibility program](/docs/compatibility/overview).\n\n- If you want to learn about the background of AOSP, including Google's\n participation in the platform, see\n [AOSP frequently asked questions](/docs/setup/about/faqs)."]]