PR

画面とプログラムを独立させる

 (2)のリソースには,プログラムから参照される文字列や,アイコンなどの画像ファイルのほか,画面のレイアウトを記述するXML(拡張マークアップ言語)のファイルも含まれている。Androidでは,画面のレイアウトをXMLで記述し,プログラムのロジックとウインドウのレイアウトを分離する。これにより,独立性の高いプログラムを設計できるわけだ。

 Androidでは,XMLで記述可能なテキスト・ボックスやボタンなどの部品を「ビュー」と呼ぶ。画像を選択する「ImageSwitcher」や入力文字の補間を行う「AutoComplete」などの部品のほか,ビューを一列にレイアウトする「LinearLayout」やテーブル上にレイアウトする「TableLayout」などが提供されている。

 例えば,文字列を定義するためのXMLは,図5のように定義されている。ここで定義された文字列は,プログラムから参照できるほか,図6に示すようにレイアウトを定義するXMLなどからも参照できる。

図5 文字列定義の例
図5 文字列定義の例
[画像のクリックで拡大表示]

図6 レイアウト定義の例
図6 レイアウト定義の例
[画像のクリックで拡大表示]

 (3)のマニフェスト・ファイルは,アプリケーションの属性を指定するファイルだ。アプリケーションのアイコンが表示される“ランチャ”上のアイコンや,最初に起動するアクティビティ・クラスなどをXMLで記述する。

 図7に示したNotePadのマニフェスト・ファイルでは,アイコンとして“app_notes”というリソースを指定し,起動するアクティビティのクラス名としてNotesListを指定している。

図7 マニフェスト・ファイルの例
図7 マニフェスト・ファイルの例
[画像のクリックで拡大表示]

アプリからアプリを起動して連携

 Androidでは,アクティビティから別のアクティビティを起動するために「インテント」という仕組みを使用している。アクティビティの起動を要求するクラスは,要求する内容をインテントに設定し,フレームワークに発行する。フレームワークは,マニフェスト・ファイルに記述したインテント・フィルタという要素の内容を基に,指定された機能を持つアクティビティを起動する。

 アクティビティの起動は,同じアプリケーション内で定義する以外に,別のアプリケーションからアクティビティの起動を定義することもできる。アプリケーションから通話用アプリケーションや地図表示のアプリケーションを起動する仕組みで,複数ソフトを連携させるアプリケーションも容易に構築できるわけだ。

 このように,様々な機能を組み合わせることで,高度なアプリケーションを簡単に作成できる仕組みが提供されている。SDKに含まれるドキュメントを参考にして,ぜひ,楽しいアプリケーションを作成していただきたい。

 次回は,シャープの携帯情報端末(PDA)である「Zaurus」に,Androidのソース・コードを移植し,実機で動かすまでの詳細を報告したい。