PR

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のWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

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