고급 에뮬레이터 네트워킹 기능

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: 블루투스 라디오 유형 (예: ble, bt_classic). 이 매개변수는 대소문자를 구분하지 않는 별칭을 지원합니다.
  • RSSI_VALUE: RSSI 값(i8(정수))

예를 들어 다음 명령어는 BLE 트래픽의 RSSI를 -65dBm으로 설정합니다.

emulator -netsim-args="--rssi=ble:-65"

여러 라디오 (예: --rssi=bt_classic:-65 --rssi=ble:-72)에 대해 이 플래그를 여러 번 지정할 수 있습니다.