医療学生のためのアプリ開発講座⑧

Androidアプリのデバッグ方法

Androidアプリを作成していく中で見つかる不具合を修正したり、さらに性能を高めるために調整したりする作業がデバッグです。SDKの中には、このデバッグを効率よく行なうためのツールが実装されています。またパフォーマンス改善のために使うこともできますから、これらを上手に活用していきましょう。

 

バグが見つかった場合、その原因を探っていくためには、その時点での動作状況の正確なログがあると便利です。これができるのがandroid.utilパッケージのLogクラスです。動作ログが出力表示されますので、ソースコードを確認してみましょう。

 

Logの後にメソッドを指示することで使い分けていくことができます。まず、dは デバッグメッセージをログとして出力し、eをつけると エラーメッセージを出力します。Iは 情報メッセージにして出力するメソッドで、 v 汎用メッセージとします。Wは 警告メッセージとしてのログ出力になります。

 

通常の操作でバグが発見されれば、こうしてログを録り、原因を解明し、修正を行なっていきます。しかし通常の操作や自分で想定している範囲ではバグは出ないものの、配布して一般公開すると不具合が多発するというケースが少なくありません。こうしたことを避けるため、事前にストレステストすることは有益です。

 

ストレステストのためには、AndroidSDKに実装されているツールで、モンキーテストを実行してみましょう。モンキーテストとは、猿が適当に操作したりめちゃくちゃな操作をするかのようにアプリを動かしたりすることで、通常よりも負荷をかけたシミュレートを行なうことです。

 

通常のテストですと見つからないバグも、こうしたストレステストをすることによってイレギュラーな細かいバグも事前に発見することができるのです。これでも正常に動作すれば、完成度の高いアプリということで信頼も増すことでしょう。

 

モンキーテストは、Logではなくadbというコマンドで実行していきます。イベントの発生回数や、イベントの種類、発生の間隔などを設定して動かしていきます。実際にどのくらいの数や間隔にすればよいのかはアプリの種類によりますので、それぞれ調整していってください。

 

プロファイリングツールも活用できると、アプリの完成度はさらに高まります。ソースコードの中の、計測したい箇所に始点にDebug.startMethodTracingメソッドを挿入しましょう。停止させるためのコードはDebug.stopMethodTracingです。プロファイリング結果の保存先を指定し、実行させるためのエミュレーターの設定を行ないます。