실행 중인 각 가상 기기에는 에뮬레이션된 기기 환경을 쿼리하고 제어할 수 있는 콘솔이 제공됩니다. 예를 들어 앱이 에뮬레이터에서 실행되는 동안 콘솔을 사용하여 포트 리디렉션과 네트워크 특성, 전화 통신 이벤트를 관리할 수 있습니다.
다음 명령어를 실행하려면 에뮬레이터가 이미 실행 중이어야 합니다. 에뮬레이터 실행에 관한 자세한 내용은 Android Emulator에서 앱 실행과 명령줄에서 에뮬레이터 시작을 참고하세요.
콘솔 세션 시작 및 중지
콘솔에 액세스하여 터미널 창에서 명령어를 입력하려면 telnet
을 사용하여 콘솔 포트에 연결하고 인증 토큰을 제공합니다. 콘솔에 OK가 표시될 때마다 명령어를 수락할 준비가 된 것입니다. 일반적인 메시지는 없습니다.
실행 중인 가상 기기의 콘솔에 연결하려면 다음 단계를 따르세요.
- 터미널 창을 열고 다음 명령어를 입력합니다.
- 콘솔에
OK
가 표시되면auth auth_token
명령어를 입력합니다. - 콘솔에 연결한 후 콘솔 명령어를 입력합니다.
- 콘솔 세션을 종료하려면
quit
또는exit
를 입력합니다.
telnet localhost console-port
에뮬레이터 창 제목에는 별도의 창에서 실행될 때는 콘솔 포트 번호가 나열되지만 도구 창에서 실행될 때는 번호가 표시되지 않습니다. 예를 들어 콘솔 포트 5554를 사용하는 에뮬레이터의 창 제목은 Pixel8_API_34:5554
일 수 있습니다. 또한 adb devices
명령어는 실행 중인 가상 기기 및 그 콘솔 포트 번호의 목록을 출력합니다. 자세한 내용은 기기 쿼리하기를 참고하세요.
참고: 에뮬레이터는 포트 5554~5585에서 연결을 리슨하고 localhost
연결만 허용합니다.
콘솔 명령어를 입력하려면 에뮬레이터 콘솔에 인증이 필요합니다. auth_token
은 홈 디렉터리에 있는 .emulator_console_auth_token
파일의 내용과 일치해야 합니다.
이 파일이 없으면 telnet localhost console-port
명령어가 파일을 만들며, 이 파일에는 임의로 생성된 인증 토큰이 포함됩니다. 인증을 사용 중지하려면 .emulator_console_auth_token
파일에서 토큰을 삭제하거나 파일이 없으면 빈 파일을 만듭니다.
콘솔 명령어 목록을 확인하고 특정 명령어에 관해 알아보려면 help
, help command
또는 help-verbose
를 입력합니다.
세션 예는 다음과 같습니다.
$ telnet localhost 5554 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Android Console: Authentication required Android Console: type 'auth <auth_token>' to authenticate Android Console: you can find your <auth_token> in '/Users/me/.emulator_console_auth_token' OK auth 123456789ABCdefZ Android Console: type 'help' for a list of commands OK help-verbose Android console command help: help|h|? Prints a list of commands help-verbose Prints a list of commands with descriptions ping Checks if the emulator is alive automation Manages emulator automation event Simulates hardware events geo Geo-location commands gsm GSM related commands cdma CDMA related commands crash Crashes the emulator instance crash-on-exit Simulates crash on exit for the emulator instance kill Terminates the emulator instance restart Restarts the emulator instance network Manages network settings power Power related commands quit|exit Quits control session redir Manages port redirections sms SMS related commands avd Controls virtual device execution qemu QEMU-specific commands sensor Manages emulator sensors physics Manages physical model finger Manages emulator finger print debug Controls the emulator debug output tags rotate Rotates the screen clockwise by 90 degrees screenrecord Records the emulator's display fold Folds the device unfold Unfolds the device multidisplay Configures the multi-display nodraw turn on/off NoDraw mode. (experimental) resize-display resize the display resolution to the preset size virtualscene-image customize virtualscene image for virtulscene camera proxy manage network proxy server settings phonenumber set phone number for the device try 'help <command>' for command-specific help OK exit Connection closed by foreign host.
에뮬레이터 명령어 참조
다음 표는 매개변수 및 값과 함께 에뮬레이터 콘솔 명령어를 설명합니다.
표 1. 에뮬레이터 콘솔 명령어
일반 명령어 | 설명 |
---|---|
avd {stop|start|status|name}
|
다음과 같이 가상 기기를 쿼리, 제어, 관리합니다.
|
avd snapshot {list|save name|load name|delete
name}
|
다음과 같이 스냅샷에 기기 상태를 저장하고 복원합니다.
다음 예에서는 avd snapshot save firstactivitysnapshot |
fold
|
기기를 접어 더 작은 화면 구성을 표시합니다(기기가 폴더블이고 현재 펼쳐져 있는 경우). |
unfold
|
기기를 펼쳐 더 큰 화면 구성을 표시합니다(기기가 폴더블이고 현재 접혀 있는 경우). |
kill
|
가상 기기를 종료합니다. |
ping
|
가상 기기가 실행 중인지 확인합니다. |
rotate
|
AVD를 시계 반대 방향으로 45도씩 회전합니다. |
에뮬레이터 비정상 종료 | 설명 |
crash
|
앱 실행 중에 에뮬레이터가 비정상 종료됩니다. |
crash-on-exit |
앱이 종료될 때 에뮬레이터가 비정상 종료됩니다. |
디버그 태그 | 설명 |
debug tags ...
|
에뮬레이터의 특정 부분에서 디버그 메시지를 사용 또는 사용 중지합니다.
tags 매개변수는 다음 예에서는 debug radio |
포트 리디렉션 | 설명 |
redir list
|
현재 포트 리디렉션을 나열합니다. |
redir add protocol:host-port:guest-port
|
다음과 같이 새 포트 리디렉션을 추가합니다.
|
redir del protocol:host-port
|
포트 리디렉션을 삭제합니다.
|
지리적 위치 | 설명 |
에뮬레이터에 GPS 수정사항을 전송해 에뮬레이터 내에서 실행 중인 앱에 보고된 지리적 위치를 설정합니다. 가상 기기가 실행되는 즉시 다음 |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
에뮬레이터에 간단한 GPS 수정사항을 보냅니다.
longitude 와 latitude 를 십진수로 지정합니다. 1에서 12까지의 숫자를 사용하여 위치를 파악하는 데 사용할 satellites 수를 지정하고 altitude 를 미터 단위로, velocity 를 노트 단위로 지정합니다.
|
geo nmea sentence
|
에뮬레이션된 GPS 모뎀에서 보낸 것처럼 NMEA 0183 문장을 에뮬레이션된 기기로 보냅니다. '$GP'로 sentence 를 시작합니다.
현재 '$GPGGA'및 '$GPRCM' 문장만 지원됩니다. 다음 예는 GPS 수신기의 시간, 위치, 수정 데이터를 가져오는 GPGGA(위성 위치 확인 시스템 수정 데이터) 문장입니다.
geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx |
가짜 하드웨어 이벤트 | 설명 |
event types
|
모든 가짜 이벤트 유형을 나열합니다. 코드가 있는 이벤트의 경우 코드 수는 오른쪽의 괄호 안에 나열됩니다.
event types event <type> can be an integer or one of the following aliases: EV_SYN EV_KEY (405 code aliases) EV_REL (2 code aliases) EV_ABS (27 code aliases) EV_MSC EV_SW (4 code aliases) EV_LED EV_SND EV_REP EV_FF EV_PWR EV_FF_STATUS EV_MAX OK |
event send types [types ...]
|
하나 이상의 가짜 이벤트 유형을 전송합니다. |
event codes type
|
지정된 가짜 이벤트 유형의 이벤트 코드를 나열합니다. |
event send type[:code]:[value] [...]
|
선택적 코드 및 코드 값으로 하나 이상의 가짜 이벤트를 전송합니다.
전송할 이벤트를 정확하게 찾으려면 다음은 전원 버튼을 누를 때 생성되는 이벤트입니다. adb shell getevent -lt /dev/input/event12: EV_KEY KEY_POWER DOWN /dev/input/event12: EV_SYN SYN_REPORT 00000000 /dev/input/event12: EV_KEY KEY_POWER UP /dev/input/event12: EV_SYN SYN_REPORT 00000000 EV_KEY 이벤트:
event send EV_KEY:KEY_POWER:0 OK event send EV_KEY:KEY_POWER:1 OK |
event text message
|
키 누르기를 시뮬레이션하는 문자열을 전송합니다. 메시지는 UTF-8 문자열이어야 합니다. 유니코드 게시물이 현재 기기 키보드에 따라 역매핑되며 지원되지 않는 문자는 자동으로 삭제됩니다. |
전원 상태 제어 | 설명 |
power display
|
배터리 및 충전기 상태를 표시합니다. |
power ac {on|off}
|
AC 충전 상태를 on 또는 off 로 설정합니다.
|
power status {unknown|charging|discharging|not-charging|full}
|
지정된 대로 배터리 상태를 변경합니다. |
power present {true|false}
|
배터리 유무 상태를 설정합니다. |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
배터리 상태를 설정합니다. |
power capacity percent
|
배터리 잔량 상태를 0에서 100 사이의 백분율로 설정합니다. |
네트워크 연결 상태 | 설명 |
network status
|
네트워크 상태와 현재 지연 및 속도 특성을 확인합니다. |
network delay latency
|
에뮬레이션된 네트워크 지연 시간을 변경합니다. 에뮬레이터를 사용하면 다양한 네트워크 지연 시간 수준을 시뮬레이션할 수 있으므로 좀 더 일반적인 실제 실행 조건의 환경에서 앱을 테스트할 수 있습니다. 에뮬레이터 시작 시 지연 시간 수준 또는 범위를 설정하거나 앱이 에뮬레이터에서 실행되는 동안 콘솔을 사용하여 지연 시간을 변경할 수 있습니다. 네트워크 latency의 형식은 다음 중 하나입니다(숫자는 밀리초). 네트워크 지연 시간 형식
에뮬레이터 시작 시 지연 시간을 설정하려면 앞의 네트워크 지연 시간 형식 목록에 나열된 대로 지원되는 emulator -netdelay gprs emulator -netdelay 40,100 에뮬레이터가 실행되는 동안 네트워크 지연을 변경하려면 콘솔에 연결하고 앞의 네트워크 지연 시간 형식 목록에서 지원되는 network delay gprs network delay 40 100 |
network speed speed |
에뮬레이터를 사용하면 다양한 네트워크 전송 속도를 시뮬레이션할 수 있습니다. 에뮬레이터 시작 시 전송 속도 또는 범위를 설정하거나 앱이 에뮬레이터에서 실행되는 동안 콘솔을 사용하여 속도를 변경할 수 있습니다. 네트워크 네트워크 속도 형식
에뮬레이터 시작 시 네트워크 속도를 설정하려면 앞의 네트워크 속도 형식 목록에 따라
emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 에뮬레이터가 실행되는 동안 네트워크 속도를 변경하려면 콘솔에 연결하고 앞의 네트워크 속도 형식 목록에서 지원되는 network speed 14.4 80 |
network capture {start|stop} file |
패킷을 파일로 전송합니다. 다음 목록은 매개변수 및 매개변수 값을 설명합니다.
|
전화 통신 에뮬레이션 | 설명 |
Android Emulator에는 에뮬레이션된 자체 GSM 및 CDMA 모뎀이 포함되어 있어 에뮬레이터에서 전화 기능을 시뮬레이션할 수 있습니다. 예를 들어 GSM을 사용하면 수신 전화 통화를 시뮬레이션하고 데이터 연결을 설정 및 종료할 수 있습니다. CDMA를 사용하면 구독 소스와 기본 로밍 목록을 제공합니다. Android 시스템은 실제 통화와 아주 동일한 방식으로 시뮬레이션된 통화를 처리합니다. 에뮬레이터는 통화 오디오를 지원하지 않습니다. | |
gsm {call|accept|cancel|busy} phonenumber
|
gsm 매개변수는 다음과 같습니다.
|
gsm {data|voice} state
|
data state 명령어는 GPRS 데이터 연결 상태를 변경하고 data voice state 명령어는 GPRS 음성 연결 상태를 다음과 같이 변경합니다.
|
gsm hold
|
통화 상태를 hold 로 변경합니다. 현재 상태가 active 또는 waiting 일 때만 통화 상태를 hold 로 변경할 수 있습니다.
|
gsm list
|
모든 수신 및 발신 전화와 그 상태를 나열합니다. |
gsm status
|
현재 GSM 음성/데이터 상태를 보고합니다. 값은 voice 및 data 명령어에 관해 설명된 값입니다.
|
gsm signal {rssi|ber}
|
다음 15초 업데이트 때 보고된 신호 강도(rssi)와 비트 오류율(ber)을 변경합니다. 다음 목록은 매개변수 및 그 값을 설명합니다.
|
gsm signal-profile num
|
신호 강도 프로필을 설정합니다.
num 은 0에서 4까지의 숫자입니다.
|
cdma ssource source
|
다음과 같이 현재 CDMA 구독 소스를 설정합니다. 여기서 source 는 CDMA 이동통신사의 구독자와 그 값을 포함하는 네트워크 기반 허용 목록입니다.
|
cdma prl_version version
|
현재 기본 로밍 목록(PRL) 버전을 덤프합니다. 버전 번호는 시스템 선택 및 획득 프로세스 중에 사용되는 정보가 포함된 PRL 데이터베이스용입니다. |
에뮬레이터에서 센서 관리 | 설명 |
이러한 명령어는 AVD에서 사용 가능한 센서와 관련이 있습니다. sensor 명령어를 사용하는 것 외에 Accelerometer와 Additional sensors 탭의 Virtual sensors 화면에서 에뮬레이터의 설정을 확인하고 조정할 수 있습니다.
|
|
sensor status |
모든 센서 및 센서 상태를 나열합니다. 다음은 sensor status 명령어의 출력 예입니다.
|
sensor get sensor-name
|
sensor-name 의 설정을 가져옵니다. 다음 예는 가속 센서값을 가져옵니다.
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348
콜론(:)으로 구분된 |
sensor set sensor-name value-x:value-y:value-z
|
sensor-name 의 값을 설정합니다. 다음 예는 가속 센서를 콜론으로 구분된 x, y, z 값으로 설정합니다.
sensor set acceleration 2.23517e-07:9.77631:0.812348 |
SMS 에뮬레이션 | 설명 |
sms send sender-phone-number textmessage
|
에뮬레이션된 수신 SMS를 생성합니다. 다음 목록은 매개변수 및 그 값을 설명합니다.
다음 예는 'hi there' 메시지를 4085555555 전화번호로 전송합니다. sms send 4085555555 hi there 콘솔은 SMS 메시지를 Android 프레임워크로 전달하고 Android 프레임워크는 SMS를 처리하는 에뮬레이터의 앱(예: 메시지 앱)에 메시지를 전달합니다. 숫자 10개를 전달하면 앱에서 전화번호로 형식을 지정합니다. 더 길거나 짧은 숫자 문자열은 전송 방식을 표시합니다.
|
디지털 지문 시뮬레이션 | 설명 |
finger touch fingerprint-id
|
센서를 터치하는 손가락을 시뮬레이션합니다. |
finger remove
|
손가락 삭제를 시뮬레이션합니다.
이러한 명령어를 사용하는 방법에 관한 안내는 디지털 지문 시뮬레이션 및 검증에 관한 다음 섹션을 참고하세요. |
디지털 지문 시뮬레이션 및 검증
![](https://developer.android.com/static/studio/images/run/fingerprint_2x.png?authuser=0000&hl=ko)
그림 1. 디지털 지문 인증 화면
finger
명령어를 사용하여 앱의 디지털 지문 인증을 시뮬레이션하고 검증합니다. SDK 도구 24.3 이상과 Android 6.0(API 수준 23) 이상이 필요합니다.
디지털 지문 인증을 시뮬레이션하고 검증하려면 다음 단계를 따르세요.
- 아직 디지털 지문 ID가 없는 경우 Settings > Security > Fingerprint를 선택하고 등록 안내에 따라 에뮬레이터에 새 디지털 지문을 등록합니다.
- 디지털 지문 인증을 허용하도록 앱을 설정합니다. 이 설정을 실행하면 기기에 디지털 지문 인증 화면이 표시됩니다.
- 앱에서 디지털 지문 인증 화면을 표시하는 동안 콘솔로 이동하여
finger touch
명령어와 생성한 디지털 지문 ID를 입력합니다. 이것으로 손가락 터치를 시뮬레이션합니다. - 그런 다음
finger remove
명령어를 입력하여 손가락 삭제를 시뮬레이션합니다.앱은 사용자가 터치한 다음 지문 센서에서 손가락을 뗀 것처럼 응답해야 합니다.