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

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サーバーを再起動して行います。

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

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30