2012年2月14日火曜日

Android アプリのeclipse上におけるデバッグ

Androidアプリの作成するさいのデバッグ方法ですが、簡単なのはLogCatクラスを使用して実行中にログを出させて、それをeclipseなりでモニタする方法があります。実機とつないでも簡単にできますが、やはりeclipseを使うんですから、ソースを直接ステップ実行したいです。簡単にできるだろうと最初は思ったんですが、これが中々うまくいきません。windows7上で試していたんですが、どうも「実行」(run)メニューの2番目にある通常の「デバッグ」ではだめなようで、Android SDKを入れたことで追加されるメニュー項目の「デバッグ」からAndroidアプリのデバッグを選択してデバッグの構成からいかないとだめなようです。結局うまくいかず、次にMac OSX上の環境で試してみたら、デバッグができました。ただ、それでも自分でビューを「デバッグ」に切り替えないといけない(自動で変わってくれたのは最初の1回だけ・・・)ような、あるいはブレークポイントをはってもそれがうまくエミュレータ上に反映されない?ような状況がでてきました。以前もアプリを変更しても、それが中々エミュレータ上に反映してくれなくて四苦八苦してましたが、もう少し試してみないとよくわかりません。(ブレークポイントの設定を変えるたびにアプリを再ロードは、ちょっとおかしいだろう。→さすがにこれはありませんでしたが、初期化ルーチンで止めたい時はエミュレータ上でアプリを一度止めて、再実行しないとだめですね。当たり前ですが。)
あと、ネットで調べていた時たいていは単に「デバッグ」で動かせばいいとしか書いてありませんが、大事な設定があります。当該プロジェクトの"AndroidManifest.xml内の設定で「デバッグ可能」(Debuggable)というフラグがあり、デフォルトの初期値がNULLなんです。これを手動で"true"にしてやる必要があります。(右上にあります)
true/falseなんですが、まさか初期値がNULL(空白)とは予想してませんでした。(これに気づくのに2,3時間かかりました)
あと実機(自分はgalaxy s2)上でもソースコードデバッグができるそうですが、これはまだ試していません。ただ調べてると、Samsung Kies(iPod/iPoneのiTune相当)を入れてないとダメという情報もあり(該当するSamsungのページは今ではなくなっていました。どうも専用のUSBドライバをいれないといけないようです。実際、windows用にしかでてないんですが、昨年末のVerUp以降最新のをいれないとGalaxy s2にはアプリを入れれなくなってしまい、現在Mac OSXではアプリを作ってもアップロードできない状態です。)、各社癖がありそうで大変です。

しかしAndroidの開発環境がjavaで構築されているせいなんでしょうが、動作がとてものろくてかないません。仕事でAndroidアプリを作成している人たちはどうしてるんでしょうね?(我慢するしかない?自分のPC(win7)は一応Core5、メモリ4GBつんでますからそんなに貧弱ではないと思うんですが、どうみてもCore2のMacの方が動作が早く見えるんですが・・・)


PS
ほぼ確実にソースコードデバッグができる手順がわかりました。

  1. emulatorを起動する。(何らかのアプリをデバッグするでもOK)
  2. デバッグしたいプロジェクトを選び、eclipseのビューをjavaからデバッグに切り替える。
  3. そこで(Androidアプリの)デバッグを実行する。
  4. コンソールに当該アプリをemulatorにインストールしますというメッセージが表示され、ブレークポイントで止まる。(Step実行が可能になる)

この手順4になるときに、Core5/4GBのノートPCでも数秒かかります。(Macだと心持早め)仕事で使うなら、Linuxマシンでないとだめな感じです。手元にはメモリが1GB程度の貧弱なマシンしかLinuxマシンがないので実際に確認できませんが。

0 件のコメント:

コメントを投稿