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

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

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

関連用語: アプリ

Android ランタイム(ART)と Dalvik
Android ランタイム(ART)とは、Android のアプリと一部のシステム サービスが使用する管理対象のランタイム環境のことです。Android ランタイム(ART)は、Android 5.0(API レベル 21)以上を搭載するデバイスのデフォルトのランタイムです。ART とその前身である Dalvik は、元々 Android プロジェクト用に作成されました。ART はランタイムとして、Dalvik 実行可能ファイル形式と Dex バイトコード仕様を実行します。ART と Dalvik は Dex バイトコードを実行する相互に互換性のあるランタイムであり、Dalvik 用に開発されたアプリは ART で実行しても動作します。
.dex ファイル
コンパイル済みの Android アプリのコードファイル。

Android のプログラムは、コンパイルされて .dex(Dalvik Executable)ファイルになり、次に圧縮されてデバイス上の .apk ファイルという単一のファイルになります。.dex ファイルは、Java プログラミング言語で書かれたコンパイル済みアプリが自動変換されて作成されます。

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

関連用語: インテント

アクティビティ
アプリ内の 1 画面に相当し、Java コードをサポートして、Activity クラスから派生します。通常、1 つのアクティビティは全画面表示されたウィンドウの形をとります(このウィンドウでは、UI イベントの受信や処理、複雑なタスクの実行が可能です)。これは、アクティビティのウィンドウの表示に使用する Window オブジェクトです。アクティビティは全画面表示が一般的ですが、フローティングにしたり、透明にしたりすることもできます。
adb
Android Debug Bridge。SDK に含まれるデバッグ用のコマンドライン ツールです。デバイスのブラウジング、デバイスへのツールのコピー、デバッグ用のポート転送を行うツールが用意されています。Android Studio で開発を行っている場合、adb はその開発環境に統合されています。詳細については、Android Debug Bridge(adb)をご覧ください。
アプリ
コンポーネントの観点では、Android アプリは、1 つ以上のアクティビティ、サービス、リスナー、インテント レシーバで構成されています。ソースファイルの観点では、Android アプリは、コード、リソース、アセット、1 つのマニフェストで構成されています。コンパイル時に、これらのファイルはアプリ パッケージ ファイル(.apk)という 1 つのファイルにパッケージ化されます。

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

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

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

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

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

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

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

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

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

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

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

インテント フィルタ
アプリのマニフェスト ファイル内で宣言するフィルタ オブジェクト。Android システムに対して、アプリの各コンポーネントで受け入れるインテントのタイプと条件を伝えるために使用します。これにより、アプリ側で対応可能なデータ型、インテント アクション、URI 形式などを示すことができます。Android システムによるインテント送信先の決定に際しては、すべてのアプリについて利用可能なインテント フィルタが評価され、そのインテントと条件に最も適合するアプリまたはアクティビティにインテントが送信されます。詳しくは、インテントとインテント フィルタに関する記事をご覧ください。

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

ブロードキャスト レシーバ
ブロードキャストの(単一のアプリやアクティビティがターゲットではない)インテントをリッスンする Application クラス。ブロードキャスト インテントは、Android システムから関連するすべてのブロードキャスト レシーバに配信され、そこで順番に処理されます。

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

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

関連用語: リソース

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

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

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

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

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

関連用語: キャンバス

SurfaceView
描画のために Surface をラップし、サイズやフォーマットを動的に指定するメソッドを使用できる View オブジェクト。SurfaceView を使用すると、リソース消費の多いオペレーション(ゲームやカメラ プレビューなど)で UI スレッドとは独立して描画できますが、結果として多くのメモリが使用されます。 SurfaceView は、キャンバスと OpenGL ES の両方のグラフィックをサポートしています。基本クラスは SurfaceView です。

関連用語: サーフェス

テーマ
いろいろな表示のデフォルト設定を定義しておくために、各種プロパティ(テキストサイズ、背景色など)をひとまとめにしたもの。Android にはいくつかの標準テーマ(R.style にリストされた「Theme_」で始まるもの)が用意されています。
Android の URI
Android では、コンテンツ プロバイダ内のデータをリクエスト(連絡先リストの取得など)したり、インテントでアクションをリクエスト(ブラウザでウェブページを開くなど)したりするために、URI(Uniform Resource Identifier)の文字列を使用します。URI のスキームと書式は用途ごとに異なり、アプリでは URI スキームと文字列を任意の方法で処理できます。一部の URI スキームは、システム コンポーネントによって予約されています。たとえば、コンテンツ プロバイダのデータをリクエストする場合は、content:// を使用する必要があります。インテントにおいて、http:// スキームを使用した URI はブラウザによって処理されます。
ビュー
画面上に長方形領域として描画されるオブジェクトで、これにより、クリック、キーボード入力などの操作イベントが処理されます。アクティビティ画面やダイアログ画面のほとんどのレイアウト コンポーネント(テキスト ボックス、ウィンドウなど)の基本クラスです。ビューは、親オブジェクト(ビューグループを参照)から自身を描画するよう呼び出しを受けると、描画しようとする場所と大きさを親オブジェクトに通知します(親オブジェクトにより認められる場合も認められない場合もあります)。詳細については、View をご覧ください。

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

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

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

ビューグループ
一連の子ビューをグループ化したコンテナ オブジェクト。必要に応じて子ビューを呼び出し、子ビュー自身を描画させたり、子ビューの配置や大きさを決定したりするのは、ビューグループの役割です。 ビューグループには、本来の UI(たとえばスクロール リストボックスなど)を持つものがある一方、レイアウト専用で表示はされないものもあります。ビューグループは、すべて widget パッケージに含まれます(拡張 ViewGroup を除く)。

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

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