世界を目指せ!Androidアプリ開発入門

第11回 デバッグ手法のあれこれ

この記事を読むのに必要な時間:およそ 2 分

Monkeyテストツール

Android SDKにもモンキーテストを実行するツールが存在します。

ご存知ではない方の為にご説明すると,モンキーテストとは,無茶苦茶な操作を行って,アプリが問題がなく動作するか確認するストレステストのことです。テストの様子が,まるで,お猿さんが適当に実機を操作しているようなので,モンキーテストと呼ばれています。Andoridの場合は,実際の操作を行うワケではなく,ツールを使って無茶苦茶なイベントを発行してテストを実行します。

一般的な手順であれば,アプリの仕様に合わせてテスト項目を作成して,順にテスト項目を消化して行きますが,モンキーテストは,そうした類のテストではないのと,発生するイベントも網羅的ではないので,バグを発見できない可能性もありますが,ストレス試験の意味合いで,リリースする前に実行することをお勧めします。

では,使い方をご説明します。

モンキーテストは,先のLogクラスとは違い,adbコマンドを使って端末内のコマンドを実行します。実行は,コマンドラインから以下を入力します。

$adb shell monkey -v 1 -p com.exsample.sampleapp 1000

それでは,コマンドを順に見て行きます。

オプションの最初の「-v 1」は,実行情報の出力レベルを指定しています。

設定範囲は0?2で,以下の意味を持っています。

0開始と終了時の最小限の情報出力
1どのようなイベントを発生したかなどの情報出力
2レベル1よりもさらに詳細な情報出力

次の「-p」で,モンキーテストを行うパッケージ名を指定します。

最後の数字は,イベントの発生回数になります。指定する回数は,アプリの性質によって異なりますが,余りに少ないとストレステストにならないので,開発しているアプリに合わせて調整を行ってください。

Monkeyテストには,発生するイベントの種類をどの程度のパーセンテージとするか指定できたり,発生するイベントの間隔を指定できるなど,細かな制御が行えるオプションが存在しています。詳細は,以下のリンクを参照して,アプリに応じた設定を行い,モンキーテストを行ってください。

UI/Application Exerciser Monkey:
http://developer.android.com/intl/ja/guide/developing/tools/monkey.html

プロファイラ:TraceViewの使い方

Android SDKには,プロファイリングツールが付属しています。

ツールはTraceViewと呼ばれるソフトですが,これは名前が示す通りプロファイリングの結果を表示するツールで,プロファイリングするには,以下のようにソースコードの計測したい位置にコードを追加する必要があります。

Debug.startMethodTracing( "profile" );
// ...
Debug.stopMethodTracing();

それでは,ソースコードを順に見て行きます。

計測の開始位置に,Debug.startMethodTracingメソッドを追加します。startMethodTracingメソッドの第一引数には,プロファイリング結果を保存するためのファイル名を指定します。この結果は,.traceの拡張子が付けられて,SDカードの直下に保存されます。計測の停止位置には,Debug.stopMethodTracingを追加します。

コードを追加が終わったら,開始と停止を追加したコード間が実行されるように,エミュレーターを実行して操作を行います。

実行し終えたら,計測結果のファイルを手元のパソコンに転送します。

ファイルの転送は,ddmsのファイルエクスプローラーを使っても良いですし,以下のようにコマンドラインからコマンドを実行しても構いません。

adb pull /sdcard/profile.trace /Users/yasuos/src/profile.trace

次に,TraceViewを起動します。

起動は,以下のように行います。引数に指定した計測結果のファイルは,フルパスで指定して下さい。

traceview /Users/yasuos/src/profile.trace

実行すると,画面2のようなウィンドウが表示されます。

後は,この計測結果を確認しながら,どの部分にボトルネックがあるのか確認してパフォーマンスチューニングを行います。

画面2

画面2

まとめ

今回は,デバッグの手法として,以下の手法をご紹介しました。

  • 動作ログを表示するLogCatの使い方
  • モンキーテストツールのMonkeyの使い方
  • TraceViewの使い方

いずれもアプリのデバッグを行うために,大きな手助けをしてくれるので,この機会に使い方を覚えて,手足のように使いこなせるよう,使い込んでください。

著者プロフィール

傍島康雄(そばじまやすお)

5月30日生まれ。

モバイルデバイスが大好物。それで動くアプリの開発に喜びを感じている。スマートフォン前夜のWindows Mobile,PalmOSのアプリに情熱を傾けていたが,最近は停滞気味でコードを書くよりも文章を書く機会が多くなっており,文章を書くのも,プログラミングと同じくらい奥深い作業だと感じている。

ブログ:http://yasuos.com/blog/