Androidのアプリケーション開発環境

2009年4月8日(水)
水野 光男

JavaソースコードとXMLファイル

HelloProjectでは、XMLファイルを編集して、表示する文字列を変更しました。このように、Androidのアプリケーション開発は、JavaといくつかのXMLファイルで行います。図3-1は主要なJavaソースコードとXMLファイルの関係を示しています。

AndroidManifest.xmlにはアプリケーションの名前やアイコン、最初に起動するActivityなどを指定します。

HelloActivity.javaがプログラム本体です。1つのアプリケーションは複数のActivityを持つことができ、それぞれのActivityは複数のViewを持つことができます。

R.javaは画面のレイアウトや文字列などのリソースをJavaコードから参照できるようにするIDが記述されます。Eclipseで開発する場合は、IDは自動的に生成されるので、このファイルを編集する必要はありません。

main.xmlは表示する画面のレイアウトを記述します。レイアウトを編集するツールは、はっきり言ってとても貧弱です。そこで、DroidDraw(http://www.droiddraw.org/)のようなツールを使う開発者も多いようです。

strings.xmlは文字列を記述します。多国語をサポートするアプリケーションを開発する場合は、このXMLファイルを言語ごとに用意します。

Androidのデバッグ環境

Androidのデバッグ環境はEclipseに統合されています。メニューの[Window] - [Open Perspective] - [Debug]を選択し、パースペクティブをデバッグに切り替えると、図3-2のようにデバッグ画面になります。

ここで、ブレークポイントをしかけたり、スレッドの情報表示や、オブジェクトのダンプなどができます。

一番下のLogCatというウィンドウに、デバッグログが表示されています。プログラムからここにログを出力するには、次のAPIを使用します。

---------------------------------------------------
Log.v("ログ用のタグ", "出力するメッセージ");
---------------------------------------------------

このほかに、DDMS(Dalvik Debug Monitor System)というデバッグツールがあります。システム全体のメモリ使用量や、アプリケーションのメモリトラッキングができます。図3-3右上の円グラフはメモリ消費量です。DDMSは、Android SDKをインストールしたディレクトリのtoolsディレクトリにあります。

もう1つデバッグツールを紹介します。コマンドラインからデバッグを行う、adbコマンドです。これもAndroid SDKのtoolsディレクトリにあります。

adbコマンドは図3-4のように、ログの表示やアプリケーションのインストールを行うことができます。adb shellはLinuxのコマンドプロンプトです。使用できるコマンドは少ないですが、lsやpsといった使い慣れたコマンドが発行できます。

G1やAndroidを移植したZaurusやOMAP3EVM(http://thinkit.jp/article/905/3/)でも、同じようにデバッグできます。Androidが組み込み開発向きである理由の1つです。このようなリモートデバッグ環境が整備されているフレームワークは珍しいと言えます。リモートデバッグは、環境変数ADBHOSTにIPアドレスを設定して、adbサーバーを再起動して行います。

次回は、(株)ブリリアントサービスの杉本さんにバトンタッチし、より実践的なアプリケーション開発をご紹介いただきます。

日本Androidの会
日本Androidの会組み込みWG。最初のAndroid SDKがGoogleから発表されたとき、早速ダウンロードして「Hello, World」を書いて、ひょとしてZaurusで動いたら面白いんじゃないかな?と思ってしまったのがきっかけでした。日本Androidの会では定期的に勉強会を開いています。ご興味があれば、ぜひ。
http://android-group.jp

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています