USBデバッグ、とてもお手軽で良いのですが、USBデバイスをつなぐ必要がある場合、デバッグが困難になる。
Wifiを使ったデバッグが可能なので、試した。
前提
- 今回はWindowsで行う
- Android端末とデバッグ用PCが同一ネットワークに存在する必要がある
- Android端末を乗っ取ろうといった、悪意がある人はいないものとする
手順
SDKの場所を確認しておく。AndroidStudioならTools→SDK Managerから、SDKのパスを知ることができる。
今回は%USERPROFILE%\AppData\Local\Android\Sdk
で統一する。(Android Studioを入れるとここに入るはず。)
-
USBケーブルでつなぐ
-
IPを得る
端末上の情報から確認する。
端末の操作が面倒な場合、これを流すと得られるかもしれない。(環境によってはうまくいかないかもしれない。)%USERPROFILE%\AppData\Local\Android\Sdk\platform-tools\adb.exe shell ip addr "|" grep inet "|" grep global "|" cut -d "' '" -f 6 "|" cut -d "/" -f 1
-
adb tcpip
でTCP接続を待ち受けるようにする。今回は5555番だが、5555番はあまりにも有名なので、もしネットワーク上に怪しい人がいそうで、少しでも隠したい場合はポート番号を変えるとかする。%USERPROFILE%\AppData\Local\Android\Sdk\platform-tools\adb.exe tcpip 5555
なお、この時点でケーブルを抜いても良い。
-
adb connect
で接続する。(2)で得たIPと(3)で指定したポートを使う。%USERPROFILE%\AppData\Local\Android\Sdk\platform-tools\adb.exe connect 192.168.xxx.xxx:5555
connected to 192.168.xxx.xxx:5555
と出ればOK。
後はUSBの時と同じように、いい感じに認識するはず。デバッガもちゃんと機能する。
デバッグ作業を終えたらTCP接続を受け付けない形に戻す。
%USERPROFILE%\AppData\Local\Android\Sdk\platform-tools\adb.exe usb
トラブルシューティング
unable to connect to 192.168.xxx.xxx:5555: cannot connect to 192.168.xxx.xxx:5555: 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。 (10060)
- ネットワーク的に到達できていない。IPが正しいか、IPが同じネットワーク内に存在するか確認する。
- 私の端末の不具合?らしく、WiFiを一度オフにし、再度オンにした後、(3)のtcpipコマンドからやり直す。(WiFiを1度オフにしないとダメ。理由は不明。)
unable to connect to 192.168.xxx.xxx:5555: cannot connect to 192.168.xxx.xxx:5555: 対象のコンピューターによって拒否されたため、接続できませんでした。 (10061)
- tcpipコマンドを忘れている。一度、USB接続しなおして、コマンドを打つ。
- IPを間違えている。(ただし、こっちのエラーの場合は存在する。)
おまけ: 便利ツール
Unityでアプリログを見たい場合はSDKについてくるmonitorを使うとよい。
%USERPROFILE%\AppData\Local\Android\Sdk\tools\monitor