この場合、adb(Android Debug Bridge)を使うことになる。
注意)abdはAndroid Studioをインストールすると一緒にインストールされる。

 

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