この場合、adb(Android Debug Bridge)を使うことになる。

 

1)USBケーブルでMacとAndroid実機をつなぐ。

 

2)ターミナルから以下のコマンドで、つないだAndroid実機がadbに認識されていることを確認する。

 

cd ~/Library/Android/sdk/platform-tools/

./adb devices

 

 adbに認識されていれば、ターミナルに次のように出力され、繋がっている実機の一覧が得られる。例ではエミュレータ1台と実機1台が認識されている。

 

例)

List of devices attached

emulator-5554    device ← エミュレータ

6AB7C17922000026    device ← 実機

 

 ここでちゃんと目的のAndroid実機が認識されていることを確認すること。

 上の例のように複数のデバイス(Android実機やエミュレータ)をつなげている場合は、./adb devices -l とすることで、各デバイスの詳細が表示されるので、その情報から目的のAndroid実機を特定すれば良い。

 

 実機が出ない場合は実機側の設定>開発者向けオプションのUSBデバッグがOffになっている場合が考えられる。Onにしてから再確認するべし。また実機によってはUSB接続時に常に確認をOffにする必要があったりする。このようにadbとは別の理由でトラブルの原因となる場合がある。

 

 また、上の例で表示されているemulator-5554や6AB7C17922000026はデバイスを特定する時に識別子として使うことになる。

 ただし、つながっているデバイスが1つなら識別子でのデバイス指定は不要。

 そのため、以後の作業は、つながっているデバイスが目的のAndroid実機1つだけという状態での作業を示す。エミュレータを起動しているなら終了させ、他のAndroid実機はUSBから外しておくこと。

 以後の作業は、./adb devicesの結果が

 

List of devices attached

6AB7C17922000026    device ← 目的のAndroid実機のみ

 

となっている前提で説明する。

 

3)ターミナルから以下のコマンドで、目的のAndroid実機にTCP/IP経由でデバッグすることを命令する。TCP/IPポート番号の指定が必須。利用するTCP/IPポート番号のデフォルトは5555なので5555を指定すればいい。

 

./adb tcpip 5555

 

もし、複数のデバイスをつないでいる場合、-sとデバイス識別子を使いデバイスを指定する必要がある。

例)./adb -s 6AB7C17922000026 tcpip 5555

 

adbの使い方は./adb  --helpで表示できる。ここにデフォルトのポート番号が5555であることも示されている。ならtcpipの後にポート番号の5555をわざわざ指定しなくても、省略時は5555と解釈でいいように思えるが、ポート番号は必須みたい。

 

4)Android実機側の設定>端末情報>端末の状態で、Android実機に割り付けられているIPアドレスを調べる。

 

5)ターミナルから以下のコマンドで、adbにIPアドレス(例:10.0.1.9)で指定されるAndroid実機と連携するように指示する。

 

./adb connect 10.0.1.9

 

 これで、ケーブルを抜いてもAndroid Studioの実行先として実機が表示される。

 

 もし5555とは違うポート番号を使いたいなら3)からの作業を以下のように変更する。Android実機側のIPアドレスの調べ方は4)を参照。

 

a-1)ターミナルから以下のコマンドで、Android実機に対しTCP/IP経由でデバッグすることを命令する。

 

./adb tcpip 4444

 

3)の作業だが、利用するTCP/IPポート番号として5555以外(例:4444)を指定している点に注意。

 

a-2)ターミナルから以下のコマンドで、adbにIPアドレス(ポート番号を追加)で指定されるAndroid実機と連携するように指示する。

 

./adb connect 10.0.1.9:4444

 

IPアドレスに:4444が追加されている点に注意。

これで、ケーブルを抜いてもAndroid Studioの実行先として実機が表示される。

 

 

追記:検索するとターミナルから以下のコマンドで、USBに繋がっているAndroid実機に対し、adbとの通信に利用するTCP/IPポート番号を5555とは別のポート番号(例:4444)に変更させる必要もありそうなことが書かれているのだが、この点は必須なのかどうかよくわからない。./adb tcpip 4444だけでもいいような…

 

./adb shell setprop service.adb.tcp.port 4444

 

もし、複数のデバイスをつないでいる場合、-sとデバイス識別子を使いデバイスを指定する必要がある。

例)./adb -s 6AB7C17922000026 shell setprop service.adb.tcp.port 4444

 

AD