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

Android プラットフォームに関する基本的な用語の定義を以下に示します。主な用語の定義については、ほかにも次のようなソースがあります。

アプリ

.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(adb)をご覧ください。
マニフェスト ファイル
アプリごとに定義する必要がある XML ファイル。アプリのパッケージ名や、バージョン、コンポーネント(アクティビティ、インテント フィルタ、サービス)、インポート ライブラリ、各種アクティビティの詳細などを記述します。記述するアプリ情報については、 AndroidManifest.xml ファイルをご覧ください。プラットフォーム開発については、Repo マニフェスト形式をご覧ください。

グラフィック

キャンバス
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 で実行した場合でも正常に動作します。
.dex ファイル
コンパイル済みの Android アプリ コードファイル。

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