Android Emulator には、物理的な無線を使用せずに Android アプリを開発およびテストできるネットワーク シミュレータが含まれています。
このページでは、ネットワーク シミュレータの機能を制御するためのコマンドライン オプションについて説明します。
コマンドラインからエミュレータを起動する場合は、エミュレータ フラグの -netsim-args フラグを使用して、ネットワーク シミュレータに引数を渡します。
emulator -netsim-args="arg1 [arg2 ...]"
たとえば、パケット キャプチャとロギングを有効にして、特定の HCI ポートを設定するには、次のようにします。
emulator -netsim-args="--pcap --logtostderr --verbose --hci-port 12345"
Netsim の構成
これらのフラグは、netsim デーモンの一般的な動作と設定を制御します。
-l, --logtostderr: ログメッセージをログファイルではなく stderr に送信するかどうかを設定します。エミュレータの出力でログを直接確認する場合に便利です。-v, --verbose: 詳細モードを有効にします。このモードでは、より詳細なログが出力されます。これは、複雑な問題のデバッグに役立ちます。--hci-port <HCI_PORT>: カスタム HCI ポートを設定します。複数のエミュレータを実行したり、特定の HCI ポートに接続したりする場合に便利です。
アーティファクトのディレクトリを指定する
ネットワーク シミュレータ アーティファクトのディレクトリを指定するには、環境変数 $ANDROID_TMP を設定します。
export ANDROID_TMP=/path/to/your/directory
ネットワーク シミュレータは、アーティファクトを $ANDROID_TMP/android/netsimd/ ディレクトリに保存します。環境変数 $USER が設定されている場合、ネットワーク シミュレータはアーティファクトを $ANDROID_TMP/android{-$USER}/netsimd/ に保存します。
ネットワーク パケットをキャプチャする
パケット キャプチャを有効にするには、エミュレータで --pcap 引数を使用します。
emulator -netsim-args="--pcap"
この機能は、ネットワークの問題のデバッグやトラフィックの分析に役立ちます。ネットワーク シミュレータは、無線チップごとにパケット キャプチャ(pcap)ファイルを保存します。これらのファイルは、Wireshark などのツールで開くことができます。ネットワーク シミュレータは、パケット キャプチャ ファイルを netsimd アーティファクト ディレクトリの pcap サブディレクトリに保存します。
Wi-Fi アクセス ポイント(カスタム SSID と暗号化)を構成する
Wi-Fi アクセス ポイントを構成するには、エミュレータで --wifi 引数を使用します。次に例を示します。
emulator -netsim-args="--wifi <SSID> <PASSWORD>"
SSID: ネットワーク名。PASSWORD: ネットワーク パスワードは省略可能で、8 文字以上にする必要があります。設定すると、アクセス ポイントは WPA2(CCMP)で暗号化されます。
受信信号強度(RSSI)を設定する
ネットワーク シミュレータは、--rssi フラグを使用して特定の無線に特定の RSSI 値を設定することをサポートしています。
emulator -netsim-args="--rssi <PHY_KIND:RSSI_VALUE>"
PHY_KIND: Bluetooth 無線のタイプ(ble、bt_classicなど)。このパラメータでは、大文字と小文字を区別しないエイリアスがサポートされています。RSSI_VALUE: RSSI 値(i8(整数))。
たとえば、次のコマンドは BLE トラフィックの RSSI を -65 dBm に設定します。
emulator -netsim-args="--rssi=ble:-65"
このフラグは、異なるラジオに対して複数回指定できます(例: --rssi=bt_classic:-65 --rssi=ble:-72)。