概要
Android SDK を使用して、Android アプリケーションを開発する際の基礎知識をまとめています。
アプリケーションのしくみ
Android アプリケーションは次の 4 つのしくみを組み合わせて作成されます。
「Activity」
一般的な画面を操作するアプリケーションに使われるしくみです。通常、画面を持つ Android アプリケーションを作成することは、Activity を作成することと同じ意味です。ひとつのアプリケーションで、複数の Activity を持つことができますが、一度に表示できる Activity は一つだけです。そのため、Activity を切り替えながら画面の表示を行います。
Activity には、次のイベント (メソッド) が実装されています。
- onCreate : 画面を作成する際に呼び出される。通常はアプリケーション起動時となる。
- onActivityResult : 最初に表示されている Activity から呼び出した Activity から、再び最初の Activity に戻る際に呼び出される。
- onStart : 初めてが画面を表示するときに呼び出される。
- onRestart : 他のアプリケーションから割り込みがあり、再び画面を表示するときに呼び出される。
- onResume : 画面がユーザーから操作できるようになったときに呼び出される。
- onPause : 現在の画面から他の Activity に移る際に呼び出される。
- onStop : 画面がユーザーから完全に見えなくなったときに呼び出される。
- onDestroy : Activity が完全に消失するときに呼び出される。
「Service」
バックグラウンドで動作するアプリケーションに使われるしくみです。通常、サービスと言われるものに UI はありませんが、Android の Service は必ず Activity から実行されますので、Service 形式のアプリケーションであっても、最低 1 つの Activity を含める必要があります。Activity から Service を起動した後は、Activity が非表示になり、バックグラウンドで動作するアプリケーションとなります。
「Content Provider」
アプリケーション間でデータの引き渡しを行う際に使われる仕組みです。通常、セキュリティの観点から個々のアプリケーションが管理しているデータには、他のアプリケーションからはアクセスができません。しかし、データを共有したいケースもあります。その場合は、データを提供するアプリケーションに Content Provider の機能を使用して、データを外部に提供する機能を実装します。そして、そのデータを利用したいアプリケーションは、同じく Content Provider の機能を使用してデータを取得する機能を実装します。
「Intent」
上記の 3 つの構成要素を関連付けるしくみです。Intent には二つの種類があります。
- 暗黙的 Intent : アクションだけを指定して、そのアクションに対応するアプリを検索してもらう。
- 明示的 Intent : 特定のアプリを指定する。
アクションは次のようなものがあります。
- ACTION_CALL : 電話をかける
- ACTION_SENDTO : メールを送信する
- ACTION_VIEW : データを表示する
- ACTION_SEND : データを送信する
- ACTION_SET_WALLPAPER : 壁紙を設定する
- ACTION_WEB_SEARCH : Web を検索する
アプリケーションの構成
Android アプリケーションは、次の要素で構成され、開発されます。
「ソースコード」
アプリケーションの動作を決定するものです。通常 Java で記述します。
「リソース」
アプリケーションのアイコン、画像、文字列などです。リソースを入れ替えることにより、表示される画像を変えたり、英語版/日本語版のアプリケーションを作成することができます。リソースを入れ替えるだけならば、ソースコードのコンパイルは不要です。
「マニフェスト」
アプリケーションの属性が定義されています。属性には、アプリケーションのタイトル、アイコン、バージョン情報などアプリケーション全般に関する情報です。
そして、最も重要な権限について記述します。例えば、電話をかけるアプリケーションの場合、マニフェストファイルで、このアプリケーションは電話をかける機能があることを明示するわけです。これで、アプリケーションがどのような重要な機能を持っているかがすぐに分かります。
アプリケーションの動作
アプリケーションは、何かの操作が発生したときに、特定のイベントが自動的に発生して動作することが基本です。これはどういうことかというと、○○○ がされたら、△△△ というイベントが発生してアプリケーションが動作するというものです。例えば、アプリケーションのアイコンがタップされたら、アプリケーションが起動されたときに自動的に呼び出されるイベントが発生して、アプリケーションが起動します。このような動作をイベントドリブンと言い、○○○ という動作のきっかけになる条件と、それに対応する △△△ というイベントの組み合わせが定義されています。
イベントが発生することは、そのイベントに対応したメソッドが実行されることと同じ意味です。私たち開発者は、そのメソッドの中にコードを書いていくことにより、アプリケーションを完成させます。
その他の用語
「ウィジェット」
画面を作成する部品です。他の言語では、コントロールと呼ばれたりします。ウィジェットには、ボタン、ラベル、チェックボックスなどがあります。ウィジェットは、Activity 内に配置されますが、Activity に一度 Layout を配置してからウィジェットを配置します。
「AIDL (Android Interface Definition Language)」
サービスを操作するインターフェースを記述する言語のことです。AIDL を使って、プロジェクトで使用するインターフェースの基本的な情報を作成します。文法的にも Java のインターフェースと似ています。そして、コンパイルすることによって、プロジェクトで使用する Java 用のインターフェースが作成されます。