Каждое запущенное виртуальное устройство предоставляет консоль, которая позволяет запрашивать и управлять средой эмулируемого устройства. Например, вы можете использовать консоль для управления перенаправлением портов, характеристиками сети и событиями телефонии, пока ваше приложение работает на эмуляторе.
Для выполнения следующих команд необходимо, чтобы у вас уже был запущен эмулятор. Дополнительную информацию о запуске эмулятора см. в разделах «Запуск приложений в эмуляторе Android» и «Запуск эмулятора из командной строки» .
Запуск и остановка консольной сессии
Для доступа к консоли и ввода команд из окна терминала используйте 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 (ethernet and cellular only)
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 | Отправляет на эмулируемое устройство сообщение NMEA 0183, как если бы оно было отправлено с эмулируемого GPS-модема. Начинайте sentence с '$GP'. В настоящее время поддерживаются только сообщения '$GPGGA' и '$GPRCM'. Следующий пример — сообщение GPGGA (Global Positioning System Fix Data), которое получает данные о времени, местоположении и координатах для GPS-приемника: 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 : keydown и keyup:
event send EV_KEY:KEY_POWER:0
OK
event send EV_KEY:KEY_POWER:1
OK
|
event text message | Отправляет строку символов, имитирующих нажатия клавиш. Сообщение должно быть строкой в кодировке UTF-8. Символы Unicode преобразуются в обратном порядке в соответствии с текущей клавиатурой устройства, а неподдерживаемые символы отбрасываются без уведомления. |
| Управление состоянием питания | Описание |
power display | Отображает состояние батареи и зарядного устройства. |
power ac {on|off} | Устанавливает состояние зарядки от сети переменного тока: 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. |
| Состояние сетевого подключения (Только Ethernet и сотовая связь) | Описание |
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 включает в себя собственные эмулируемые модемы 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 . Вы можете изменить состояние вызова на hold только тогда, когда его текущее состояние — active или waiting . |
gsm list | Отображает список всех входящих и исходящих вызовов и их статус. |
gsm status | Сообщает о текущем состоянии голосовой связи/передачи данных GSM. Значения соответствуют значениям, указанным для команд voice и data . |
gsm signal {rssi|ber} | Изменяет сообщаемый уровень сигнала (RSSI) и частоту битовых ошибок (BER) в течение следующих 15 секунд обновления. Ниже приведен список параметров и их значений:
|
gsm signal-profile num | Задает профиль уровня сигнала. num — число от 0 до 4. |
cdma ssource source | Устанавливает текущий источник подписки CDMA, где source — это список разрешенных абонентов на основе сети, содержащий абонентов оператора CDMA и их значения, следующим образом:
|
cdma prl_version version | Выводит текущую версию списка предпочтительных роуминговых номеров (PRL). Номер версии относится к базе данных PRL, содержащей информацию, используемую в процессе выбора и приобретения системы. |
| Управление датчиками в эмуляторе | Описание |
Эти команды указывают, какие датчики доступны в AVD. Помимо использования команды sensor , вы можете просмотреть и настроить параметры эмулятора на экране «Виртуальные датчики» на вкладках «Акселерометр» и «Дополнительные датчики» . | |
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-фреймворк, который передает его приложению на эмуляторе, обрабатывающему SMS, например, приложению «Сообщения». Если вы передадите 10 цифр, приложение отформатирует их как номер телефона. Более длинные или короткие числовые строки будут отображаться в том виде, в котором вы их отправили. |
| имитация отпечатков пальцев | Описание |
finger touch fingerprint-id | Имитирует касание датчика пальцем. |
finger remove | Имитирует удаление пальца. Инструкции по использованию этих команд см. в следующем разделе, посвященном моделированию и проверке отпечатков пальцев . |
Моделирование и проверка отпечатков пальцев

Рисунок 1. Экран аутентификации по отпечатку пальца.
Используйте команду finger для имитации и проверки аутентификации по отпечатку пальца в вашем приложении. Вам потребуется SDK Tools 24.3 или выше и Android 6.0 (уровень API 23) или выше.
Для имитации и проверки аутентификации по отпечатку пальца выполните следующие действия:
- Если у вас еще нет отпечатка пальца, зарегистрируйте новый отпечаток в эмуляторе, выбрав «Настройки» > «Безопасность» > «Отпечаток пальца» и следуя инструкциям по регистрации.
- Настройте приложение для аутентификации по отпечатку пальца . После выполнения этой настройки на вашем устройстве отобразится экран аутентификации по отпечатку пальца.
- Пока ваше приложение отображает экран аутентификации по отпечатку пальца, перейдите в консоль и введите команду
finger touchи созданный вами идентификатор отпечатка пальца. Это имитирует касание пальца. - Затем введите команду
finger remove, чтобы имитировать удаление пальца.Ваше приложение должно реагировать так, как если бы пользователь коснулся датчика отпечатков пальцев, а затем убрал палец.