Hatena::ブログ(Diary)

Android(アンドロイド)情報-ブリリアントサービス RSSフィード


2010-05-19

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

| 03:15 |

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

f:id:bs-android:20100519002400p:image f:id:bs-android:20100519002401p:image

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 勉どろいどチーム いずみけんじ

n85n85 2010/05/19 14:19 > TシャツにQRコード

N1で読んでみたらドロイド君の写真でした。
(真ん中のは読み取れず)

saysay 2013/03/13 19:07 ソースを見させて頂きましたが、Copyrightやソースの流用の際のライセンスを見つけられませんでした。
>ソースも同梱していますので、ログ出力を行うフィルタをカスタマイズしてみるなど、
>ご活用いただけますと幸いです。
との事で、流用するにしても、どのようなライセンスなのかわからないと取り扱いようがないので教えて頂けるとありがたいです。

Connection: close