LogcatをAndroid端末上で見るツール LogcatViewer

LogcatをAndroid端末上で見るツール LogcatViewer を公開します。

LogcatViewerは、普段PC上でDDMSを使用して見るLogcatを、Androidの端末単体で
見ることが出来るツールです。

ダウンロードは こちら です。(ソースコードも含む)
apkファイルはbinディレクトリに格納されています。


ログを見るだけではなく、SDカードにテキスト形式で保存する事が出来ます。

サービス化&スレッド化をしているので、別アプリのLog収集や、PCが無い環境でのテスト・
デバッグ時に、端末のみでログの確認をしたい場合に使えるかと思います。

ソースも同梱していますので、ログ出力を行うフィルタをカスタマイズしてみるなど、
ご活用いただけますと幸いです。

使用方法

ボタン操作
保存 SD保存ファイル名」テキストボックスで入力されたファイル名で、ログファイルを保存します。
更新 最新のLogcatログを取得し、表示領域に反映させます。
リスト操作
リストクリック クリックしたリストのログ情報を、AlertDialogで表示します。
メニュー操作
ログ取得サービス開始 ログ取得サービス開始します。
ログ取得サービス停止 ログ取得サービス停止します。

ログの取得はサービス側で行うため、LogcatViewerアプリを完全に停止したい場合は、
ログ取得サービスを停止した上、アプリを終了してください。
更新ボタンを押下する毎に、その時点での最新のログが行末に追加されていきます。
なお、デバイス上でのログの確認がしやすいように、自動更新はあえてしていません。

保存・表示上限について

SDカード保存:30000行
表示:1000行
としています。


LogcatViewerService.java の定数の定義値を変更する事により、
保存・表示行数の増減が可能です。


LOGCAT_SAVE_MAXLINES - 保存行数
LOGCAT_DISP_MAXLINES - 表示行数

技術的なお話

350行程度のソースに、

・サービス制御
・スレッド
・synchronizedを使用した排他制御
・ListViewのシンプルな使用方法
Android端末内のコマンド実行方法
・AlertDialogのシンプルな使用方法

等、色々と詰め込んでみました。
以下、簡単な解説です。

サービス制御

LogcatViewer画面(Activity)がバックグラウンド(Pause)状態になっても、継続して
ログ収集処理が行えるように、ログ収集部をサービス化しています。

スレッド

サービスから起動されるログ収集本体部をスレッドで実装しています。

synchronizedを使用した排他制御

スレッドを終了させるための割り込みを行うために使用しています。

ListViewのシンプルな使用方法

ログ表示を行うために、サービスからListで取得したログを、setListAdapterで
ListViewに設定しています。

Android端末内のコマンド実行方法

Android端末内 /system/bin に格納されているコマンドを java.lang.Runtimeを
利用して実行しています。

AlertDialogのシンプルな使用方法

リスト選択を行った場合のログの表示を行う際に、AlertDialog.Builderを
使用して簡潔に実装しています。

by 勉どろいどチーム いずみけんじ