usbとtcpipは、adbデーモン(adbd)がUSBとTCP/IPのどちらで通信を待ち受けるかを切り替えるサブコマンドである。TCP/IP接続のconnect/disconnect自体は【adb】connect/disconnectでTCP/IP経由の端末に接続する
を参照。
tcpipでTCP/IPモードに切り替える
USB接続中の端末に対してtcpipにポート番号を指定して実行すると、adbdがそのポートでTCP/IPの接続を待ち受けるようになる。
$ adb tcpip 5555
restarting in TCP mode port: 5555
tcpipを実行してもUSB接続が切断されるわけではない。connectでTCP/IP接続すると、USB接続とTCP/IP接続が別々のエントリとして同時に一覧へ表示される。
$ adb connect 192.168.1.100:5555
connected to 192.168.1.100:5555
$ adb devices -l
List of devices attached
1234567890ABCDEF device usb:8-3.3 product:SH-02M model:SH_02M device:SH-02M transport_id:19
192.168.1.100:5555 device product:SH-02M model:SH_02M device:SH-02M transport_id:20
usbでUSBモードに戻す
usbを実行すると、adbdはUSB接続での待ち受けに戻る。複数端末が一覧に表示されている状態では、-sでUSB接続側のシリアル番号を指定する。
$ adb -s 1234567890ABCDEF usb
restarting in USB mode
usbを実行した直後、それまで使っていたTCP/IP接続のエントリは一覧から消えずofflineとして残る。
$ adb devices -l
List of devices attached
1234567890ABCDEF device usb:8-3.3 product:SH-02M model:SH_02M device:SH-02M transport_id:21
192.168.1.100:5555 offline product:SH-02M model:SH_02M device:SH-02M transport_id:20
このofflineエントリに対してコマンドを実行してもエラーになる。不要になったらdisconnectで明示的に取り除く。
$ adb -s 192.168.1.100:5555 shell echo hi
adb: device offline
$ adb disconnect 192.168.1.100:5555
disconnected 192.168.1.100:5555
\確かな知識を身に着けたい、Androidアプリ開発を学びたい人にオススメ!/
