Androidを「解剖」する連載の後半。前回はAndroidの実装形態を解説したのに対し,今回はアプリケーション・プログラムの開発に関する情報を取り上げる。アプリケーションの実装形態やレイアウトの記述方法,プログラム間連携の仕組み,利用できるJavaクラスなどに触れる。(以下の本文は,『日経エレクトロニクス』,2007年12月17日号,pp.66-69から転載しました。内容は執筆時の情報に基づいており,現在では異なる場合があります)

 まだ公開が滞っているAndroid本体とは逆に,一通りの情報が公開されているのがアプリケーション・プログラムの開発に関する情報である。アプリケーション・ソフトウエアの多さがプラットフォームの強さにつながるとGoogle社が考えた結果とみられる。実際,開発コンテストなどを開催しているのも同じ理由からだろう。

4種類の実装形態

 Androidのアプリケーション・プログラムには,「Activity」「Service」「Content Provider」「Intent Receiver」という四つの実装形態がある。ユーザー・インタフェース(UI)を持つAndroidのアプリケーション・プログラムはActivityとして実装する。ServiceはUIを持たず,連続的に情報を提供し続けるプログラムである。SDKでは,例えばプレイリストに基づいて複数の楽曲を連続的に再生するものをServiceとして実装すると説明している。Content Providerはデータベースなど,特定の条件下においてデータを提供するものである。Intent Receiverは外部のイベントに対して何らかの反応を返す際に使う。例えば電話が着信したときに何らかの処理をするプログラムはIntent Receiverとして実装する。ただしUIを表示できないので,ユーザーへの提示は別途Activityを呼び出すなどの工夫が必要となる。

基本はActivity

 アプリケーション・プログラムを普通に作る場合は,Activityを使うことになる。個々のActivityはActivityクラスの子クラスとして実装する。実行時には,アプリケーション・フレームワークがライフサイクル・モデルに基づいてActivityを呼び出す(図8)。この形で実装することにより,アプリケーション・プログラムをOSが統一的に取り扱えるようにしている。

図8 Activityのライフサイクル・モデル AndroidではActivityがプログラムの基盤となる。動作状況に応じて呼び出されるメソッドが決まっていて,それに対応した処理を記述しておかなければならない。例えば,ほかのプログラムが起動した際などに適切なデータの保存などを実施する。具体的にはonFreezeまたはonPauseメソッドに実装することになる。
図8 Activityのライフサイクル・モデル AndroidではActivityがプログラムの基盤となる。動作状況に応じて呼び出されるメソッドが決まっていて,それに対応した処理を記述しておかなければならない。例えば,ほかのプログラムが起動した際などに適切なデータの保存などを実施する。具体的にはonFreezeまたはonPauseメソッドに実装することになる。 (画像のクリックで拡大)