アプリ開発の際にAndroid実機を使う場合普通はUSBケーブルを接続してデバッグを行います。
でもこの方法ではUSBへカメラ等を繋いで動かす場合にリアルタイムでデバッグが出来ません。ログをアプリ内でファイルに出力しておいたりあるいはアプリを終了してからUSBケーブルでPCに繋ぎ直してからログを見るなんてことになってしまいます。
面倒ですよね?でも多くのAndroid端末ではネットワーク経由でデバッグができるのです。まぁインターネット上で探せば手順を書いてるサイトが沢山あるので今更?って話なんですが時々問い合わせがあるので自分のブログにも書いておこうと思います。
必要になるものはこれぐらいですかね。
- 開発環境の入ったPC
- Android実機
- Android端末とPCを接続するためのUSBケーブル
- ローカルネットワーク環境(無線LAN環境)
ただし、一部の端末ではネットワーク経由でのデバッグを受け付けないように設定されていたりルート権限が必要な場合があります。この場合にはルート権限を取ったり設定ファイルを書き換えたりすればネットワーク経由でもデバッグ出来ますが、普通は諦めて別の端末を用意した方が簡単でしょうね。
手順は次の通りです。
- USBケーブルでAndroid端末とPCを接続する。
- Android端末でUSBデバッグを有効にする。
- PCのコンソール(コマンドプロンプト)から
“adb tcpip 5555”
を実行する。
5555の部分はこの値以外でも構いませんが他のソフトウエアが使用していないポート番号にしないといけません。adbのデフォルトのポート番号は5555です。
もし”error: more than one device and emulator“と表示された場合は複数の端末が接続されているので端末IDを指定して実行しないといけません。端末IDを指定して実行する方法はこのページの最後を見てください。 - PCのコンソール(コマンドプロンプト)から
“adb connect xxx.xxx.xxx.xxx”
を実行する。
xxx.xxx.xxx.xxxはAndroid端末のローカルIPアドレスです。ポート番号を変更した時はコロンで区切ってポート番号を指定します。例えばIPアドレスが192.168.1.10でポート番号を5000にする場合には
“adb connect 192.168.1.10:5000”
のようにします。ちなみに、デフォルトのポートである5555を使う場合にはポート番号の指定は不要です。
手順4で
“connected to xxx.xxx.x.xxx:ポート番号”
と表示されればネットワーク経由でのadb接続成功です。後はEclipseでもAndroidStudioでも普通にデバッグできます。残念ながら
“unable to connect to xxx.xxx.xxx.xxx:ポート番号:ポート番号”
と表示されてしまった場合にはIPアドレスやポート番号を確認して再度試してみてください。それでもダメなら…ご愁傷様でした。ポート番号が2つ表示されるのは実害は無いですが昔からあるadbのバグですね。
なおこのままではIPアドレスとポート番号を知っている人は誰でも接続できてしまいます。デバッグが終われば
“adb usb”
を実行してネットワーク経由でのデバッグを解除しましょう。”adb usb“の代わりに端末を再起動したり開発者向けオプションでUSBデバッグを一度無効にしてから有効にし直すことでもネットワーク経由でのデバッグを解除できます。
ちなみに、Android端末側のIPアドレスは、
1)「設定」>「無線とネットワーク」>「Wi−Fi」>「詳細設定」と選択してWi-Fi詳細設定画面を表示する。(「詳細設定」はメニュー内から選択します)
2)「設定」>「タブレット情報/端末情報」>「端末の状態」と選択して端末の状態画面を表示する。
のいずれかの方法でIPアドレスを見ることが出来ます。
複数の端末を同時に接続したい場合には、それぞれの端末に対して同じ手順を繰り返すことで複数接続することが出来ます。
ただし1つ気を付けないといけないのは、手順3です。このコマンドはUSB経由とネットワーク経由で接続されている端末が1つだけの場合のみ有効です。既に複数の端末が接続されている場合には、
“adb -s 端末ID tcpip 5555”
とする必要があります。なお、端末IDは
“adb devices”
と実行すれば確認することが出来ます。
お疲れ様でした。