リモート Android デバイス上での Android アプリケーションの実行とデバッグ
目次
このページでは、ネットワークに接続された Android デバイス上で Android アプリケーションをデバッグする方法を説明します。この方法は、ネットワーク越しの ADB
や TCP/IP デバッグ
とも呼ばれます。
先に「Android モバイル アプリケーション開発」を読んで、Android デバイスを開発用にセットアップし使用するのに必要な手順を理解しておいてください。
この方法には、次のような利点があります。
- Android デバイスに無線接続するため、USB ケーブルが必要ありません(root 化していないデバイスでは USB ケーブルを使用してデバッグ モードを変更する必要があります)。
- 開発者間でデバッグ用に Android デバイスを共有する方法が簡素化されます。
- メモ: このページで使用する ADB コマンドはどれも、マシンに接続されている Android デバイスが 1 台だけの場合に正しく動作するものです。複数の Android デバイスが接続されている場合には、Android ヘルプ(コマンド送信先の指定)(英語版)で ADB コマンドの正しい実行方法を確認してください。
- メモ: Android アプリケーションは、たとえユーザーに表示されていなくても、常にバックグラウンドで実行され続けています。アプリケーションは実行し続けているため、デバッガ自身は単純にアプリケーションから切断されるだけでもハングする場合があります。
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 ケーブルでマシンに接続します。
- ターミナル(
cmd.exe
など)を開きます。 - お使いの Android SDK の
platform-tools
フォルダに移動します。cd "C:\Users\Public\Documents\Embarcadero\Studio\23.0\CatalogRepository\<Android SDK folder>\platform-tools"
- 以下のコマンドを実行します:
adb tcpip 5555
- メモ:
5555
を、デバイスが入ってくる接続をリスンするポート番号と置き換えます。
- メモ:
- 好みにより、このコマンドを実行した後でマシンと Android デバイスの接続を解除してもかまいません。
Android デバイスが root 化 されている場合、TCP/IP デバッグ モードを有効にするために、次のいずれかを行います:
- デバイスの「開発者設定」メニューで、
TCP/IP デバッグ モード
を有効にします(「ネットワーク越しの ADB
」などの名前になっている場合もあります)。 - 次のコードを、ターミナル エミュレータで実行します:
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 <IPAddress>:<portNumber>"。 コマンド 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