Каждое работающее виртуальное устройство предоставляет консоль, которая позволяет запрашивать среду эмулируемого устройства и управлять ею. Например, вы можете использовать консоль для управления перенаправлением портов, характеристиками сети и событиями телефонии, пока ваше приложение работает на эмуляторе.
Следующие команды требуют, чтобы у вас уже был запущен эмулятор. Дополнительные сведения о запуске эмулятора см. в разделах «Запуск приложений на эмуляторе Android» и «Запуск эмулятора из командной строки» .
Запуск и остановка сеанса консоли
Чтобы получить доступ к консоли и ввести команды из окна терминала, используйте telnet
для подключения к консольному порту и предоставления токена аутентификации. Каждый раз, когда на консоли отображается сообщение «ОК» , она готова принимать команды. Типичного приглашения нет.
Чтобы подключиться к консоли работающего виртуального устройства:
- Откройте окно терминала и введите следующую команду:
- После того, как консоль отобразит
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.
Справочник команд эмулятора
В следующей таблице описаны консольные команды эмулятора с их параметрами и значениями:
Общие команды | Описание |
---|---|
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 для нажатия и нажатия клавиши: 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} | 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 включает в себя собственные эмулируемые модемы 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 send sender-phone-number textmessage | Генерирует эмулированное входящее SMS. В следующем списке описаны параметры и их значения:
В следующем примере сообщение «Привет» отправляется на номер телефона 4085555555: sms send 4085555555 hi there Консоль пересылает SMS-сообщение в платформу Android, которая передает его приложению на эмуляторе, обрабатывающему SMS, например приложению «Сообщения». Если вы передадите 10 номеров, приложение отформатирует их как номер телефона. Более длинные или короткие числовые строки отображаются так, как вы их отправили. |
Имитация отпечатков пальцев | Описание |
finger touch fingerprint-id | Имитирует прикосновение пальца к датчику. |
finger remove | Имитирует удаление пальца. Инструкции по использованию этих команд см. в следующем разделе, посвященном моделированию и проверке отпечатков пальцев . |
Моделирование и проверка отпечатков пальцев
Используйте команду finger
для имитации и проверки аутентификации по отпечатку пальца для вашего приложения. Вам потребуется SDK Tools 24.3 или более поздняя версия и Android 6.0 (уровень API 23) или более поздняя версия.
Чтобы смоделировать и проверить аутентификацию по отпечатку пальца, выполните следующие действия:
- Если у вас еще нет идентификатора отпечатка пальца, зарегистрируйте новый отпечаток пальца в эмуляторе, выбрав «Настройки» > «Безопасность» > «Отпечаток пальца» и следуя инструкциям по регистрации.
- Настройте свое приложение для приема аутентификации по отпечатку пальца . После выполнения этой настройки на вашем устройстве отобразится экран аутентификации по отпечатку пальца.
- Пока ваше приложение отображает экран аутентификации по отпечатку пальца, перейдите на консоль и введите команду
finger touch
и созданный вами идентификатор отпечатка пальца. Это имитирует прикосновение пальца. - Затем введите команду
finger remove
, чтобы имитировать удаление пальца.Ваше приложение должно реагировать так, как если бы пользователь коснулся, а затем убрал палец со датчика отпечатков пальцев.