リモート Android デバイス上での Android アプリケーションの実行とデバッグ
目次
このページでは、ネットワークに接続された Android デバイス上で Android アプリケーションをデバッグする方法を説明します。この方法は、ネットワーク越しの ADB
や TCP/IP デバッグ
とも呼ばれます。
先に「Android モバイル アプリケーション開発」を読んで、Android デバイスを開発用にセットアップし使用するのに必要な手順を理解しておいてください。
この方法には、次のような利点があります。
- Android デバイスに無線接続するため、USB ケーブルが必要ありません(root 化していないデバイスでは USB ケーブルを使用してデバッグ モードを変更する必要があります)。
- 開発者間でデバッグ用に Android デバイスを共有する方法が簡素化されます。
- メモ: このページで使用する ADB コマンドはどれも、マシンに接続されている Android デバイスが 1 台だけの場合に正しく動作するものです。複数の Android デバイスが接続されている場合には、Android ヘルプ(コマンド送信先の指定)(英語版)で ADB コマンドの正しい実行方法を確認してください。
Android デバイスでの TCP/IP デバッグの有効化
要件
- 開発用マシンが接続されているのと同じ無線ネットワーク(の一部)に Android デバイスが接続されていなければなりません。
Android デバイスが root 化されていない場合には、以下も必要です。
- Android SDK がインストールされているマシン
- USB ケーブル
- マシン上で ADB デバイスと認識される Android デバイス
Android デバイスが root 化されている場合には、以下が必要です。
- 次のいずれか。
TCP/IP デバッグ モード
を有効にするメニュー設定 (ROM で提供されています。通常は開発用設定メニューに含まれています。ネットワーク越しの ADB
と呼ばれることもあります)- デバイス上にインストールされたターミナル エミュレータ アプリケーション(Terminal Emulator for Android など)
TCP/IP デバッグ モード
を有効にするアプリケーション(ADB over network など)
- メモ: 開発用マシンは、Android デバイスと同じネットワークであれば、無線で接続していても Ethernet ケーブルで接続していてもかまいません。
手順
Android デバイスが root 化されていない場合:
- Android デバイスを USB ケーブルでマシンに接続します。
- Android SDK インストール ディレクトリの "platform-tools" ディレクトリで、コマンド
adb tcpip <ポート番号>
を実行します。<ポート番号> は、デバイスがデバイスに対する接続をリスンするポートです。たとえばポート 5555 を使用する場合、コマンドはadb tcpip 5555
となります。 - 好みにより、このコマンドを実行した後でマシンと Android デバイスの接続を解除してもかまいません。
Android デバイスが root 化されている場合:
-
TCP/IP デバッグ モードを有効にするために、以下のいずれかを行います。
-
デバイスの開発用設定メニューで
TCP/IP デバッグ モード
を有効にします(ネットワーク越しの ADB
などの名前になっている場合もあります)。 - ターミナル エミュレータで以下のコードを実行します。
style="list-style: none; display: inline"
su setprop service.adb.tcp.port 5555 stop adbd start adbd
-
デバイスの開発用設定メニューで
- TCP/IP デバッグを有効にするアプリケーションを使用します。
Android デバイスへの接続
開発用マシンから Android デバイスに接続するには、Android SDK インストール ディレクトリの "platform-tools" ディレクトリで、コマンド adb connect <IP アドレス>:<ポート番号>
を実行します(adb connect 192.168.1.110:5555
など)。<IP アドレス> はデバイスの IP アドレスです。デバイスの IP アドレスを調べる方法はいくつかあります。
- デバイスのメニューで確認します(通常は
[Settings|Wi-Fi|Advanced Wi-Fi]
ですが、デバイスの OS バージョンやメーカーによって異なる可能性があります)。 - Android SDK インストール ディレクトリの "platform-tools" ディレクトリで、コマンド
adb shell netcfg
を実行します。これを行うには、デバイスが USB ケーブルで接続されている必要があります。 - ネットワーク ルーターの設定ページでデバイスの IP アドレスを調べます。
接続に成功すると、コマンド ウィンドウに "connected to <IP アドレス>:<ポート番号>"(<IP アドレス>:<ポート番号> に接続しました)と表示されます。コマンド adb devices
を実行すると、接続された ADB デバイスの一覧を表示することができます。これで、接続した Android デバイスが[プロジェクト マネージャ]に表示されます。
リモート Android デバイスの接続解除
Android デバイスとの接続を解除したい場合には、デバイスのデバッグ モードをリセットする方法が簡単です。あるいは、開発用マシンで adb disconnect <IP アドレス>:<ポート番号>
というコードを実行して接続解除することもできます。
Android デバイスのデバッグ モードのリセット
Android デバイスのデバッグ モードは、デバイスを再起動するたびにリセットされます。デバイスを再起動せずにデバッグ モードをリセットしたい場合には、以下のいずれかを行ってください。
- Android デバイスが USB ケーブルで接続されているリモート マシンで、コマンド
adb usb
を実行します。 - デバイス上のターミナル エミュレータで以下のコードを実行します。
style="list-style: none; display: inline"
su setprop service.adb.tcp.port -1 stop adbd start adbd