Webtech Walker

AndroidでJavaScriptのconsole.logを表示する方法

Androidでconsole.logとかの出力を見るのには二通りあるみたいです。

1. about:debug

ブラウザのアドレスバーにabout:debugと打ち込むとJavaScriptのコンソールが現れます。これ簡単でいいんですけど、実機(Xperia ack)で試したらなんかよく(OSごと)落ちるし、いちいち入力するの面倒だしでちょっと微妙でした。あとどのバージョンからこれに対応してるかもよく知らない。

Androidのブラウザのアドレスバーにabout:debugと入力

console.logが出力される

2. adb logcat

たぶんこっちが正当法。AndroidSDKに入ってるadb(Android Debug Bridge)というツールを使います。adbはAndroidSDKの tools/adb にあります。

まずエミュレータの場合。エミュレータを立ち上げたら以下のコマンドで接続を確認します。

$ cd /path/to/AndroidSDK/tools
$ ./adb devices
List of devices attached 
emulator-5554   device

接続が確認できたら

$ ./adb logcat

これでブラウザを起動してconsole.logの出力を見たいページを表示すればコンソールに出力が流れてきます。ただし、console.log以外のもろもろのデバッグ情報もダーっと流れてくるので適当にgrepかけとくと吉。

$ ./adb logcat | grep browser

次、実機で確認する方法。まず実機のほうの設定でデバッグの設定をします。端末によるのかもしれないけど、Xperia ackの場合は「設定」→「アプリケーション」→「開発」→「USBデバッグ」にチェックします。で、USBで接続するとadbで認識されるようになるはず。

$ ./adb devices
List of devices attached 
xxxxxxxxxxxxxxx    device

認識されてたらさっきと同じようにlogcatすればconsole.logの出力とかがコンソールに流れてきます。こんな感じ出る。

logcatでログが表示される様子

ちなみに接続が複数あったらadb logcatの起動がエラーになるので、以下のように指定します。

# エミュレーターの場合
$ ./adb -e logcat

# 実機の場合
$ ./adb -d logcat

# serial numberを指定して起動する場合
$ ./adb -s <serial number> logcat

-sのserial numberってのは adb deviceds したときに表示される文字列のことです。

このエントリーをはてなブックマークに追加