Android プラットフォーム用語集

Android オープンソース プロジェクト(AOSP)の基本的な用語については、以下のリストをご覧ください。主な用語の定義については、ほかにも次のようなソースがあります。

多様性を受容するエコシステムにするために使用する用語や避けるべき用語の例については、不適切な表現の回避をご覧ください。

アプリ

.apk ファイル
Android アプリ パッケージ ファイル。各 Android アプリはコンパイルされて単一のファイルにパッケージ化されます。このファイルには、アプリのコード(.dex ファイル)、リソース、アセット、マニフェスト ファイルがすべて含まれます。アプリ パッケージ ファイルの名前は任意ですが、拡張子は .apk にする必要があります(例: myExampleAppname.apk)。アプリ パッケージ ファイルを略して「APK」と呼びます。

関連用語: アプリ

アクション
インテントの送信元が希望する処理を記述したもの。アクションは、文字列値としてインテントに割り当てられます。アクション文字列は、Android デベロッパーやはサードパーティ デベロッパーによって定義されます。たとえば、ウェブ URL に対しては android.intent.action.VIEW のように定義し、カスタムアプリでスマートフォンを振動させる場合は com.example.rumbler.SHAKE_PHONE のように定義します。

関連用語: インテント

アクティビティ
アプリ内の 1 画面に相当します。Java コードをサポートし、Activity クラスから派生します。アクティビティは通常、全画面表示ウィンドウの形をとり、UI イベントを受信して処理し、複雑なタスクを実行することができます。ウィンドウの表示には、Window オブジェクトを使用します。アクティビティは全画面表示が一般的ですが、フローティングや透明にすることもできます。
アプリ
コンポーネントの観点からすると、Android アプリは、1 つまたは複数のアクティビティ、サービス、リスナー、インテント レシーバで構成されています。ソースファイルの観点からすると、Android アプリは、コード、リソース、アセット、1 つのマニフェストで構成されています。コンパイル時に、上記すべてのファイルがアプリ パッケージ ファイル(.apk)という単一のファイルにパッケージ化されます。

関連用語: .apkアクティビティ

ブロードキャスト レシーバ
単一のターゲット アプリ / アクティビティに対して送信されたインテントではなく、ブロードキャストされたインテントをリッスンする Application クラス。Android システムは、関連するすべてのブロードキャスト レシーバにブロードキャスト インテントを送信します。ブロードキャスト レシーバは、順にインテントを処理します。

関連用語: インテントインテント フィルタ

コンテンツ プロバイダ
アプリのデータを他のアプリに安全にエクスポーズするために使用するデータ抽象化レイヤ。コンテンツ プロバイダは、ContentProvider クラスに基づいて作成されます。特定の形式のコンテンツ クエリ文字列を処理し、特定の形式のデータを返します。詳細については、コンテンツ プロバイダをご覧ください。

関連用語: Android での URI の使用

ダイアログ
簡易フォームとして機能するフローティング ウィンドウ。ダイアログにあるのはボタン コントロールだけであり、ボタンの選択といった簡単な操作に利用します。値を返すこともできます。ダイアログでは、履歴スタック内に永続すること、複雑なレイアウトを組み込むこと、複雑な操作を実行することは想定されていません。Android には、オプション ボタンを備えたシンプルなダイアログがデフォルトで用意されていますが、独自のダイアログ レイアウトを定義することもできます。ダイアログの基本クラスは Dialog です。

関連用語: アクティビティ

インテント
他のアプリ / アクティビティの非同期起動や、他のアプリ / アクティビティとの非同期通信に使用できるメッセージ オブジェクト。インテント オブジェクトは Intent のインスタンスです。インテント オブジェクトには条件フィールドがいくつかあり、インテントを受信するアプリ / アクティビティはどれか、インテントの処理時にレシーバは何をするのかを指定できます。指定できる条件としては、目的のアクション、カテゴリ、データ文字列、データの MIME タイプ、処理クラスなどがあります。アプリは、直接他のアプリ / アクティビティにインテントを送信するのではなく、Android システムにインテントを送信します。また、インテントは、単一のターゲット アプリに送信することも、ブロードキャストとして送信することもできます。ブロードキャストした場合は、複数のアプリで順に処理されます。各インテントに対して最適なレシーバを判断するのは Android システムの役割です。この判断は、インテント内で指定されている条件と、他のアプリによって定義されているインテント フィルタに基づいて行われます。詳細については、インテントとインテント フィルタをご覧ください。

関連用語: インテント フィルタブロードキャスト レシーバ

インテント フィルタ
アプリがマニフェスト ファイル内で宣言するフィルタ オブジェクト。そのアプリ内の各コンポーネントが受け入れるインテントのタイプと条件について、Android システムに伝えます。インテント フィルタを通じて、アプリは、処理の対象とするデータ型、インテント アクション、URI 形式などを示すことができます。Android システムがインテントを解決する際は、すべてのアプリのすべてのインテント フィルタを評価して、対象のインテントと条件に最も適合するアプリ / アクティビティにインテントを送信します。詳細については、インテントとインテント フィルタをご覧ください。

関連用語: インテントブロードキャスト レシーバ

リソース
コンパイル済みアプリコード内には含まれていないものの、ありふれた参照形式を通じてアプリコードからロードできる非プログラマティック アプリ コンポーネント。Android は、さまざまなリソースタイプをサポートしています。一般的なアプリリソースとしては、UI 文字列、UI レイアウト コンポーネント、グラフィック、各種メディア ファイルなどがあります。アプリはリソースを使用することで、ローカライズや、各種のデバイス プロファイルやデバイス状態を効率的にサポートします。たとえば、サポート対象の地域やデバイスタイプごとに別個のリソースセットを使用したり、画面の向き(横向き、縦向き)ごとに固有のレイアウト リソースを使用したりすることができます。リソースの詳細については、アプリリソースの概要をご覧ください。アプリのリソースは、常にプロジェクトの res/* サブフォルダに格納されます。
サービス
UI を表示せずにバックグラウンドで実行される Service クラスのオブジェクト。音楽の再生やネットワーク アクティビティのモニタリングなど、さまざまな永続アクションを実行します。

関連用語: アクティビティ

Android で使用される URI
Android は、URI(Uniform Resource Identifier)文字列を使用することで、コンテンツ プロバイダ内のデータをリクエストしたり(連絡先リストを取得するなど)、インテント内のアクションをリクエストしたり(ブラウザでウェブページを開くなど)することができます。URI のスキームと書式は用途ごとに異なり、各アプリは任意の方法でそのアプリ用の URI スキーム / 文字列を処理できます。一部の URI スキームは、システム コンポーネントによって予約されています。たとえば、コンテンツ プロバイダのデータをリクエストする場合は、content:// を使用する必要があります。また、インテントにおいて、http:// スキームを使用した URI はブラウザによって処理されます。

ビルド

adb
Android Debug Bridge。SDK に含まれているデバッグ用のコマンドライン アプリです。デバイスのブラウジングや、デバイスへのツールのコピー、デバッグ用のポートの転送を行うツールが用意されています。Android Studio 内で開発を行っている場合、adb を開発環境に統合できます。詳しくは、Android Debug Bridge をご覧ください。
Android プロジェクト
Android Gerrit ホストの Git リポジトリ。詳しくは、[ソース管理ツール] > [Gerrit] をご覧ください。
ビルドのフィンガープリント
ビルドのフィンガープリントは、各ビルドに発行されるメーカー情報を含む、人が読める形式の一意の文字列です。詳しくは、ビルドのフィンガープリントについてをご覧ください。
Git
Android で使用されるソース管理ツールです。従来、Git は 1 つの Git リポジトリで動作するものでしたが、複数の Git リポジトリがある場合は Repo と組み合わせて使用できます。詳しくは、[ソース管理ツール] > [Git] をご覧ください。
Git ブランチ - 正規
android-11.0.0_r1cs.android.com/android/platform/superproject/+/android-11.0.0_r1)など、各 Git リポジトリの個々のバージョン。詳しくは、Git Branching - Branches in a Nutshell(英語)をご覧ください。
Git ブランチ - ローカル
repo start branch-name . コマンドから始まる、コード変更を加えるための現在の Repo クライアント内の一時的なブランチ(アクティブな開発ライン)。ブランチにおける最新のコミットのことを、そのブランチの先端と言います。
Git リポジトリ
プロジェクトと呼ばれることもあります。frameworks/baseplatform/packages/apps/Car/Media など、デバイスの特定のコンポーネントや種類を表すコードベースの一部です。
マニフェスト ファイル
ブランチごとの Git リポジトリの分類(Git のリビジョン)を記述する XML ファイル。この Git のリビジョンで、該当するリポジトリと、ファイルシステムでのそのレイアウトをチェックアウトします。一般に default.xml という名前のこの XML ファイルは Repo ブランチに関連付けられ、ここに記述された Git リポジトリと Git ブランチが、Repo ブランチを初期化して同期する際にチェックアウトされます。 プロダクト(Android Automotive OS など)をビルドするために Repo ツールが Repo クライアント チェックアウトにフェッチする必要がある各種 Git リポジトリを定義するファイルです。すべてのマニフェストについては、android.googlesource.com/platform/manifest/+refs をご覧ください。Android プラットフォーム(AOSP)ファイルに引き出す AndroidManifest ファイルに含まれるデフォルトのマニフェストについては、android.googlesource.com/platform/manifest/+/refs/heads/master/default.xml をご覧ください。記述するアプリ情報については、AndroidManifest.xml ファイルをご覧ください。プラットフォーム開発については、Repo マニフェスト形式をご覧ください。
無線(OTA)アップデート
実際に利用中の Android デバイスで、システムやアプリ ソフトウェア、タイムゾーン ルールの無線(OTA)アップデートを受信し、インストールすることができます。詳しくは、OTA アップデートをご覧ください。
Repo
複数の Git リポジトリでの操作を簡単にする Git のラッパー。数多くの Git リポジトリを 1 つのチェックアウトまたはコードベースとして集約し管理することができます。詳しくは、[ソース管理ツール] > [Repo] をご覧ください。
Repo ブランチ
repo init コマンドと repo sync コマンドでダウンロードされた、android11-gsiaosp-android-games-sdk などの Android コードベースのバージョン(ビルド)を表す AndroidManifest ファイルに収集された Git リポジトリのコレクション。すべてのマニフェスト ファイルのリンクについては、マニフェスト ファイルの説明をご覧ください。ビルドを検索するには、https://cs.android.com/ をご利用ください。
uprev
uprev は一般に、大規模なプロジェクトを構成するサブプロジェクトを新しいバージョンに更新します。 uprev は、リビジョン レベルを次のバージョンまたは最新のバージョンに変更します。HIDL パッケージの場合、パッケージ レベルの下位互換性のある拡張を維持するため、マイナー バージョンの uprev が、名前とメジャー バージョンを古いパッケージと同じ状態にしたまま、新しいパッケージを上位のマイナー バージョンに更新します。 ブートローダーの構成の場合は、uprev によりブートヘッダー バージョンのサポートが最新バージョンに更新されます。

グラフィック

キャンバス
Bitmap オブジェクトや Surface オブジェクトに対して、実際のビットの合成を処理する描画サーフェス。ビットマップ、線、円、長方形、テキストなど、標準的なコンピュータ図形描画用のメソッドが用意されており、Bitmap や Surface にバインドされます。キャンバスは、2D オブジェクトを画面上に描画するためのシンプルで簡単な方法です。基本クラスは Canvas です。

関連用語: ドローアブルOpenGL ESサーフェス

ドローアブル
背景やタイトルなど、画面内のパーツとして使用できるコンパイル済みビジュアル リソース。ドローアブルは通常、たとえば背景画像として、別の UI 要素内にロードされます。ドローアブルはイベントを受信できませんが、「状態」やスケジュールなど、他のさまざまなプロパティを割り当てることで、サブクラス(アニメーション オブジェクトや画像ライブラリなど)を有効化できます。ドローアブル オブジェクトは多くの場合、ドローアブル リソース ファイル(画像を記述した xml ファイルやビットマップ ファイル)からロードされます。ドローアブル リソースは、android.graphics.drawable のサブクラスにコンパイルされます。ドローアブルや各種リソースの詳細については、アプリリソースの概要をご覧ください。

関連用語: リソースキャンバス

レイアウト リソース
アクティビティの画面レイアウトを記述する XML ファイル。

関連用語: リソース

Nine-patch / 9-patch / Ninepatch 画像
デバイス上で背景や各種画像用に使用できるサイズ変更可能なビットマップ リソース。詳細については、9-patch 伸縮可能画像をご覧ください。

関連用語: リソース

OpenGL ES
Android には、ハードウェア アクセラレーテッド 3D レンダリング用の OpenGL ES ライブラリが用意されています。2D レンダリングの場合は、シンプルなキャンバスをおすすめします。OpenGL ES は Android Native Development Kit(NDK)から手軽に使用できます。OpenGL ES 機能は、android.opengl パッケージと javax.microedition.khronos.opengles パッケージからエクスポーズされます。

関連用語: キャンバスサーフェス

サーフェス
画面に合成されるメモリのブロックを示す Surface タイプのオブジェクト。サーフェスは、図形描画用の Canvas オブジェクトを保持し、レイヤの描画やサーフェスのサイズ変更を行うさまざまなヘルパー メソッドを備えています。このクラスは直接使用せずに、代わりに SurfaceView を使用してください。

関連用語: キャンバス

SurfaceView
図形描画用の Surface をラップする View オブジェクト。サイズや形式を動的に指定するメソッドをエクスポーズします。SurfaceView を使用すると、リソース消費の多い処理(ゲームやカメラ プレビューなど)において、UI スレッドから独立して描画を行うことができます。ただし、結果的にメモリ使用量は増えます。SurfaceView は、キャンバスと OpenGL ES の両方のグラフィックをサポートしています。基本クラスは SurfaceView です。

関連用語: サーフェス

テーマ
さまざまなデフォルト表示設定を定義する各種プロパティ(文字サイズ、背景色など)をまとめたプロパティ セット。Android には、標準のテーマがいくつか用意されています(R.style 内にリストのうち「Theme_」で始まるもの)。
表示
画面上に長方形領域として描画されるオブジェクト。クリックやキーボード入力などの操作イベントを処理します。アクティビティ画面やダイアログ画面のほとんどのレイアウト コンポーネント(テキスト ボックス、ウィンドウなど)の基本クラスになります。ビューは、親オブジェクト(ビューグループを参照)から呼び出しを受信して、自身を描画します。そして、描画する場所とサイズを親オブジェクトに通知します(それを重視するかどうかは親オブジェクトによります)。詳細については、View をご覧ください。

関連用語: ビュー階層ビューグループウィジェット

ビュー階層
アプリの各コンポーネントのユーザー インターフェースを定義する View オブジェクトと ViewGroup オブジェクトの配置。ビュー階層は、1 つまたは複数の子ビューまたは子ビューグループを含むビューグループによって構成されます。Android SDK に含まれている Hierarchy Viewer を使用すると、ビュー階層を視覚的に表示できるため、デバッグや最適化の際に便利です。

関連用語: ビュービューグループ

ビューグループ
子ビューのセットをグループ化するコンテナ オブジェクト。子ビューの配置やサイズを決定したり、必要に応じて各子ビューを呼び出して描画させたりするのは、ビューグループの役割です。ビューグループの中には、レイアウト専用で非表示のものもあれば、固有の UI(スクロール リストボックスなど)を持っているものもあります。ビューグループは、すべて widget パッケージに含まれ、ViewGroup クラスを拡張します。

関連用語: ビュービュー階層

ウィジェット
フォーム要素や各種 UI コンポーネント(テキスト ボックスやポップアップ メニューなど)を表示する完全実装型 View サブクラスのセット。ウィジェットは完全実装型であるため、自身の測定や描画、画面イベントへの応答を処理します。ウィジェットはすべて android.widget パッケージに含まれます。
Window
Android アプリ内で、外観(例: タイトルバーのテキスト、メニューの位置やコンテンツ)など、汎用ウィンドウの要素を指定する Window 抽象クラスから派生したオブジェクト。ダイアログとアクティビティは、このクラスの実装を使用して、ウィンドウを表示します。アプリ内でこのクラスを実装したり、ウィンドウを使用したりする必要はありません。

プラットフォーム

Android ランタイム(ART)と Dalvik
Android ランタイム(ART)とは、Android のアプリと一部のシステム サービスが使用する管理対象ランタイム環境のことを指します。Android ランタイム(ART)は、Android 5.0(API レベル 21)以降を搭載しているデバイスのデフォルト ランタイムです。ART とその前身である Dalvik は、元々 Android オープンソース プロジェクト専用として作成されました。ART はランタイムとして、Dalvik Executable 形式と Dex バイトコード仕様を実行します。ART と Dalvik は、どちらも Dex バイトコードを実行する相互に互換性のあるランタイムであり、Dalvik 用に開発されたアプリは、ART で実行した場合でも正常に動作します。
コードライン
コードラインには、ソフトウェア プロダクトのリリースが含まれています。これは 1 つ以上のリポジトリの 1 つ以上のブランチで構成されており、そのすべてが同時に開発中であることがよくあります。コードラインは、リリースの集約ポイントかつターゲットです。コードラインの詳細については、Android ソフトウェア管理をご覧ください。
.dex ファイル
コンパイル済みの Android アプリ コードファイル。

Android プログラムは、.dex(Dalvik Executable)ファイルにコンパイルされた後、デバイス上で単一の .apk ファイルに圧縮されます。.dex ファイルは、Java プログラミング言語で記述されたコンパイル済みアプリを自動変換することで作成されます。

テスト

アーティファクト
アーティファクトはビルド関連のログであり、ローカルでのトラブルシューティングに利用できます。このログは、変更リストを表示する際に Gerrit から直接アクセスできます。[Presubmit Status] まで下にスクロールし、赤色の [Build] リンクをクリックして、関連する build_error.log ファイルを表示またはダウンロードします。 これらのアーティファクトは、ターゲットとビルドのダウンロード アイコン(下向き矢印)をクリックして、ci.android.com/ にある中央の Android 継続的インテグレーション サーバーからも入手できます。アーティファクトの検索方法については、Android の継続的インテグレーションをご覧ください。
CDD
Android 互換性定義ドキュメント(CDD)には、デバイスが Android の最新バージョンとの互換性を維持するために満たす必要がある要件が列挙されています。Android と互換性があると見なされるには、デバイス実装で、この互換性定義に示された要件(参照により盛り込まれたドキュメントを含む)を満たさなければなりません。CDD の詳細については、Android 互換性定義ドキュメントをご覧ください。
CTS
互換性テストスイート(CTS)は、API の正しさと CDD に規定されている仕様を確認するテストスイートです。AOSP 内でソースとして使用し、バイナリとしてダウンロードできます。詳細については、互換性テストスイートをご覧ください。
CTS 検証ツール
互換性テストスイート検証ツール(CTS 検証ツール)は CTS を補完するものです。CTS 検証ツールを使用すると、据え置きのデバイスでは手動の入力がないとテストできない API と機能をテストできます(たとえば、音質や加速度計など)。詳細については、CTS 検証ツールの使用をご覧ください。
デバッグ
デバッグでは、Android プラットフォーム コードのエラーを、機能またはコードテストのいずれかで見つけて修正する必要があります。詳細については、ネイティブ Android プラットフォーム コードのデバッグをご覧ください。
GoogleTest(GTest)
GTest は、Google の C++ のテストおよびモック フレームワークです。通常、GTest バイナリは、低レベル抽象化レイヤにアクセスするか、さまざまなシステム サービスに対して raw IPC を実行します。したがって、GTest のテスト方法は通常、テスト対象のサービスと密接に関連しています。コードは github.com/google/googletest に、ドキュメントは google.github.io/googletest にあります。
インストルメンテーション テスト
インストルメンテーション テストは、am instrument コマンドによって起動される特別なテスト実行環境です。この環境でターゲット アプリケーション プロセスが再起動され、基本アプリケーション コンテキストで初期化されて、アプリケーション プロセス仮想マシン内でインストルメンテーション スレッドが起動されます。詳細については、インストルメンテーション テストをご覧ください。
Logcat
Logcat は、デバイスがエラーをスローしたときのスタック トレースや、Log クラスを使用してアプリから書き込んだメッセージなど、システム メッセージのログをダンプするコマンドライン ツールです。詳細については、Logcat コマンドライン ツールをご覧ください。
ログ
さまざまな規格が使用され logcat で組み合わされているため、Android でのロギングは複雑です。使用される主要な規格の詳細については、ロギングについてをご覧ください。
マージの競合
Android ビルドサーバーで同じファイルの複数のバージョンが自動的にマージできなくなった場合に、マージの競合が発生します。通常、競合する更新をすべて解決するには、ファイルを手動で編集する必要があります。
presubmit テストと postsubmit テスト
presubmit テストは、共通カーネルにエラーが入り込むのを防ぐために使用されます。現時点では、結果の一般公開はされていません。

Android postsubmit テストは、共通カーネル ブランチに新しいパッチが commit されるときに実施されます。ブランチ名の一部として aosp_kernel を入力すると、該当するカーネル ブランチの結果がリスト表示されます。たとえば、「android-mainline」の結果はこちらで確認できます。
Tradefed
Trade Federation(Tradefed または TF)のテストハーネスは、Android デバイスでテストを実行するために設計された継続的なテスト フレームワークです。たとえば、Tradefed は CTS と VTS の実行に使用されます。詳細については、Trade Federation の概要をご覧ください。
VTS
Android ベンダー テストスイート(VTS)は、Android のテストに幅広い機能を提供し、テスト駆動開発プロセスを推進して、HAL と OS カーネルのテストを自動化します。詳細については、ベンダー テストスイート(VTS)とインフラストラクチャをご覧ください。