Android 11で追加されたワイヤレスデバッグが便利だった
Android11でワイヤレスデバッグという新しい機能が追加されました。
今までAndroid実機をADB経由で操作する際、USBケーブルで繋ぐ必要がありましたが、それをWi-Fi経由で接続できるようになった機能です。
- 参考
ワイヤレスデバッグの有効化
ワイヤレスデバッグは開発者オプションから有効化できます。
開発者オプションが表示されない方は、デバイスの開発者向けオプションを設定する | Android デベロッパー | Android Developers を参考に開発者オプションの表示を有効化してください。
開発者オプションを開くと、デバッグメニューに表示されます。
ここで、SwitchをONにすると、確認ダイアログが表示されます。
ダイアログで接続を許可すると、ワイヤレスデバッグが有効化されます。
(なお、端末がWi-Fiにつながっていない場合は、次のエラーが出ます。)
ADBで端末に接続する
ワイヤレスデバッグを有効化したら、ADBを使用するホストマシンと端末を接続されます。
最初に、接続情報を確認する必要があります。
「ワイヤレス デバッグ」のメニュー部分をクリックして詳細画面を開きます。
詳細画面では、端末のIPアドレスとワイヤレスデバッグ用のポート番号が表示されます。
なお、このポート番号はワイヤレスデバッグの有効化ごとに変更されます。
このIPアドレスとポートに対して、ホストマシンから接続リクエストを行います。
$ adb pair 10.113.19.97:41765
Enter pairing code: XXXXXX
Successfully paired to 10.113.19.97:41765 [guid=adb-XXXXXXXXXX-XXXXXX]```
これで接続が完了しました。 adb devicesで接続を確認しても、正しく接続できています。
$ adb devices 日 10/11 04:33:20 2020
List of devices attached
adb-XXXXXXXXXX-XXXXXX._adb-tls-connect._tcp. device
また、公式のドキュメント によるとホストマシンがWindows or Linuxの場合、
上記に加えて、adb connect ipアドレス:port
コマンドを実行する必要があるとのことです。(未確認)
また、USBデバッグで接続して対象のホストマシンからの「USBデバッグを常に許可する」設定を許可している場合、
adb connect ipアドレス:port
で接続も可能でした。
また、筆者が行ったMac OS 10.15.7 + Pixel4の組み合わせの場合、上記のpairでの接続が成立時点で自動的にペア設定済みのデバイスに設定されました。
そのため、1度上記のペア設定を行ったあとは、adb connect ipアドレス:port
で接続も可能でした。
(pair登録無しでadb connect -> 認可ダイアログが出る場合もありましたが、ダイアログが出ずに接続拒否される場合もあったのでお勧めしません<条件不明>)
また、「このペア設定済みのデバイス」は実質「USBデバッグを常に許可したデバイス」と同じようです。
ワイヤレスデバッグでペア設定したデバイスは、USB接続した際も認可ダイアログ無しで接続済みになりました。
また「USBデバッグを常に許可したデバイス」も、「このペア設定済みのデバイス」に表示されます。
Android Studioで端末に接続する
Google Developers Japan: Android 11: Developer Preview 3には
QRコードのスキャンによるワイヤレスデバッグのペア設定を、今後Android Studioのリリースに含めると書かれていました。
また、Android側のワイヤレスデバッグのメニューには、すでにQRコード読み込みによるペア設定の画面が用意されています。
旧版
そのため、Android StudioでQRコードでのペア設定ができるか試しましたが、私が探した限りその設定メニューは見つかりませんでした。
新機能のため、β版やカナリアリリースも確認しましたが、現行では実装されていなさそうでした。
- 確認時のバージョン
- β: 4.1 RC 3
- canaria: 4.2 CANARY 13
ただ、全体をくまなく探したわけではない上に、今後のリリースに含まれる可能性もあります。もし見つけた方がいれば教えてもられると嬉しいです。
QRコードのスキャンにペアリングは、Android Studio Bumblebee(2021.1.1)から対応しているため、それ以上のバージョンに上げる必要があります。
まず、ツールバーにある対象デバイスのプルダウンメニューから、Pair Devices Using Wi-Fi
をクリックします。
クリック後、ペアリング用のQRコードが表示されます。
Android端末側でワイヤレスデバッグ設定画面から、QRコードによるデバイスのペア設定
を選択、次の画面で表示されたQRコードを読み込ませます。
読み込みが正常に完了すれば、ペア設定は完了です。
Android Studioの対象デバイス一覧にもペア設定したデバイスが追加され、Wi-Fi経由でビルドした開発アプリをインストール->デバッグも可能です。
Android 11未満でワイヤレスデバッグを行う方法
ここまでは、Android 11の新機能を使ったワイヤレスデバッグの方法を説明しましたが、Wi-Fi経由のADB接続自体はそれ以前のAndroidでも行うことができます。
ただしその場合、毎回1度USB経由で接続してWi-Fi経由の接続を有効にする必要があります。
一度USBデバッグで端末に接続した後、次のコマンドでWi-Fi経由の接続を有効にします。
$ adb tcpip [port番号]
これで当該端末にadb connect ipアドレス:port番号
でWi-Fi経由のADB接続ができます。
ただし、この設定は端末再起動をすると消えるため、再起動ごとに上記の設定が必要となります。
常にワイヤレスデバッグを有効にする(要root)
上記の方法では、毎回コマンドを実行して設定する必要がありました。
ただしrootが取得できる端末では、次のコマンドを実行することで、常にワイヤレスデバッグを有効化できます。
$ adb shell
devicename:/ $ su
devicename:/ $ setprop persist.adb.tcp.port [ポート番号]
上記のコマンドを実行後、再起動してpersist.adb.tcp.portが設定されていれば、設定は完了です。
persist.adb.tcp.portが設定されているかの確認は、次のコマンドで可能です。
$ adb shell getprop |grep persist.adb.tcp.port
[persist.adb.tcp.port]: [[ポート番号]]
- 参考: 再起動したあと自動的にadb tcpipを有効化する (root化必要) - Qiita
- adb - How to enable adbd to listen to a port at boot time in Android? - Stack Overflow
終わりに
今まではWi-Fi経由のADBデバッグは、最初にUSB接続が必要だったり、root取得しておく必要がありました。
そのため、便利ではあるのですが、面倒もあるという機能でした。
しかし、このワイヤレスデバッグが追加されたことで、一切USB接続無しでWi-Fi経由のADBデバッグができるようになりました。
使えるのはAndroid 11からということで、使えるデバイスは現状限定されますが、今後11のシェアが増えたらより使い勝手も上がると思います。
MacであればほぼUSB-Cに統一されてますが、それ以外のマシンにもつなげようと思うとそれぞれのマシンに合わせたケーブルが必要になるため、それが不要になります。
そのため、今後より使いやすくなるのではと期待してます。
Discussion
Android Studio Bumblebeeにアップデートしたら端末選択メニュー部分に
Pair Devices Using Wi-Fi
という項目が追加されていて、そこからペアリング用QRコードが表示可能になっていました。やっとAndroid Studioも対応したようですね。
情報ありがとうございます!
コメントいただいて、私の方でも軽く調べてみたんですが、こちらの記事でもQRコードでのペアリングでのことが書かれており、Android Studio Bumblebeeでついに対応されたみたいですね。
記事本体の方にも手順を追加しました。ありがとうございます🙏