ネットワーク越しにadb接続する


adbはデバッグには欠かせないツールです。しかし、USB機能の利用中などケーブル接続できないケースではLogcatなどログ確認が困難です。そんなときに便利なWiFi環境を利用したネットワーク越しのadb接続方法について解説します。
その他の便利な使い方は、
adbを使いこなすでコマンドの紹介
adbを使って端末にキーイベントを送るでキーイベントの通知
を取り扱っています。合わせてどうぞ。

ネットワーク越しのデバッグをするまえに

設定に入る前に大事な注意事項があります。Android端末ごとに挙動が異なりますが、場合によってnetwork越しのadbの実行にroot権限が必要です。
(Android 3.1のMOTOROLA XOOMではroot権限は不要でした)

CyanogenModなどカスタムROM、beagleboardなどポーティングするケースでは自分がrootなので問題になりませんが、市販されているAndroid端末でrootを取得するとメーカー保証の範囲外になります。くれぐれも気をつけてください。

設定手順

ネットワーク越しにadb接続する手順を紹介します。USBポートがない機種、またAndroid2.3.4/3.1から提供が始まったホスト機能、アクセサリ機能をつかった開発などで大変便利です。

  1. Android端末とPCをUSBケーブルで接続(adb devicesで認識されていることを確認)
  2. コマンドプロンプトから [adb tcpip listen_port] を設定。たとえば adb tcpip 5000 など。
  3. コマンドプロンプトから [adb connect android端末のIPアドレス:lesten_port] たとえば adb connect 192.168.0.2:5000 など。
  4. 接続されていれば、 [adb logcat] ログ出力などが可能です。

よくあるトラブル

  • セキュリティ:
    ネットワーク越しのadb接続はipアドレスとlisten_portさえ知っていれば誰でも接続が可能になります。セキュリティ上良くないので利用完了後、
    (Android端末とPCがadb connectしている状態で)[adb usb]コマンドを入力して、ネットワーク越しのadb接続を解除してください。
    または、「USBデバッグ」を有効化することでusbでのadb接続に戻ります
  • Android端末側の設定がうまくいかない:
    設定を手助けするマーケットアプリがあります。 “adb”などをキーワードに検索してみてください。
    ※便利なアプリですが、悪意が無いことを証明できないので自己責任のもと、十分注意して利用してください。
  • Android端末側のIPアドレスがわからない:
    「設定」>「無線とネットワーク」>「WiFi設定」>接続しているAP名を選択>接続状況の表示 でIPアドレスを確認可能です
  • ○○という機種で動かない:
    GalaxyTab 10.1およびNexus S(unlock)でネットワーク越しのadb接続を確認しました。
    (お手数ですが、その他端末での動作実績などあればご連絡ください。ほとんどの機種でroot権限が必要だと想像しています)

以上、adbの紹介でした。