Каждое запущенное виртуальное устройство предоставляет консоль, которая позволяет запрашивать и управлять средой эмулируемого устройства. Например, вы можете использовать консоль для управления перенаправлением портов, характеристиками сети и событиями телефонии, пока ваше приложение работает на эмуляторе.
Для выполнения следующих команд необходимо, чтобы у вас уже был запущен эмулятор. Дополнительную информацию о запуске эмулятора см. в разделах «Запуск приложений в эмуляторе Android» и «Запуск эмулятора из командной строки» .
Запуск и остановка консольной сессии
Для доступа к консоли и ввода команд из окна терминала используйте Telnet для подключения к консольному порту и укажите свой токен аутентификации. Каждый раз, когда на консоли отображается OK , она готова принимать команды. Обычной командной строки нет.
Для подключения к консоли запущенного виртуального устройства:
Откройте окно терминала и введите следующую команду:
telnet localhost console-portВ заголовке окна эмулятора отображается номер консольного порта при запуске в отдельном окне, но не при запуске в окне инструментов. Например, заголовок окна для эмулятора, использующего консольный порт 5554, может быть Pixel8_API_34:5554. Кроме того, команда
adb devicesвыводит список запущенных виртуальных устройств и номера их консольных портов. Для получения дополнительной информации см. раздел «Запрос устройств» .Примечание: Эмулятор принимает соединения на портах 5554–5585 и принимает соединения только с локального хоста.
После того, как в консоли отобразится OK , введите команду
auth auth_token.Прежде чем вы сможете вводить консольные команды , эмулятору потребуется аутентификация.
auth_tokenдолжен совпадать с содержимым файла.emulator_console_auth_tokenв вашем домашнем каталоге.Если этот файл не существует, команда
telnet localhost console-portсоздаст его, и он будет содержать случайно сгенерированный токен аутентификации. Чтобы отключить аутентификацию, удалите токен из файла.emulator_console_auth_tokenили создайте пустой файл, если он не существует.После подключения к консоли введите консольные команды .
Введите
help,help commandилиhelp-verbose, чтобы увидеть список консольных команд и узнать о конкретных командах.Для выхода из консольной сессии введите
quitилиexit.
Вот пример сессии:
$ 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.
Команды "выстрелил и забыл"
Если вам не нужно открывать сессию, используйте ярлык adb emu , который выполнит команду и немедленно вернет управление вызывающей оболочке:
adb emu command commandParameter
Вызов команды adb emu подключается к доступному эмулятору. Если у вас одновременно запущено несколько эмуляторов, необходимо передать серийный номер конкретного целевого эмулятора:
adb -s emulator-serial emu command commandParameter
Справочник команд эмулятора
В следующих списках описаны команды консоли эмулятора с указанием их параметров и значений:
Общие команды
avd {stop| start| status| name}Запрашивает, контролирует и управляет виртуальным устройством следующим образом:- stop : Останавливает выполнение программы на устройстве.
- start : Запускает выполнение программы на устройстве.
- status : Запрашивает состояние виртуального устройства, которое может быть запущено или остановлено.
- name : Запрашивает имя виртуального устройства.
avd snapshot {list| save name| load name| delete name}Сохраняет и восстанавливает состояние устройства в снимках следующим образом:- list : Отображает список всех сохраненных снимков.
- save name : Сохраняет снимок под указанным именем.
- load name : Загружает указанный снимок.
- delete name : Удаляет указанный снимок.
В следующем примере сохраняется снимок с именем
firstactivitysnapshot:avd snapshot save firstactivitysnapshotfold : Складывает устройство, чтобы отобразить меньшую конфигурацию экрана, если устройство складное и в данный момент развернуто.
unfold : Разворачивает устройство, чтобы отобразить увеличенный экран, если устройство складное и в данный момент сложено.
kill : Завершает работу виртуального устройства.
ping : Проверяет, запущено ли виртуальное устройство.
rotate : Поворачивает AVD против часовой стрелки с шагом в 45 градусов.
Вызвать сбой эмулятора
crash : Вызывает сбой эмулятора во время выполнения приложения.
crash-on-exit : Вызывает сбой эмулятора при закрытии приложения.
Отладочные теги
Отладочные теги ... : Включает или отключает отладочные сообщения из определенных частей эмулятора. Параметр tags должен быть значением из списка отладочных тегов, который отображается при выполнении
emulator -help-debug-tags. Для получения дополнительной информации о параметре-help-debug-tagsсм. таблицу часто используемых параметров. Следующий пример включает радиотег:debug radio
Перенаправление портов
redir list : Отображает текущее перенаправление портов.
redir add protocol:host-port:guest-portдобавляет новое перенаправление портов следующим образом:- Протокол : Должен быть либо TCP, либо UDP.
- host-port : Номер порта, который необходимо открыть на хосте.
- guest-port : Номер порта, на который эмулятор будет перенаправлять данные.
redir del protocol:host-portУдаляет перенаправление порта.- Протокол : Должен быть либо TCP, либо UDP.
- host-port : Номер порта, который необходимо открыть на хосте.
Географическое местоположение
Устанавливает географическое местоположение, передаваемое приложениям, работающим внутри эмулятора, путем отправки GPS-сигнала в эмулятор.
Как только виртуальное устройство будет запущено, вы можете выполнить одну из следующих команд определения местоположения. Эмулятор устанавливает введенное вами местоположение, создавая фиктивный поставщик местоположения. Этот поставщик отвечает на запросы о местоположении, установленные приложениями, и передает местоположение в LocationManager. Любое приложение может запросить у LocationManager текущее местоположение GPS для эмулируемого устройства, вызвав метод LocationManager.getLastKnownLocation("gps") .
geo fix longitude latitude [altitude] [satellites] [velocity] : Отправляет простой GPS-сигнал в эмулятор. Укажите долготу и широту в десятичных градусах. Используйте число от 1 до 12, чтобы указать количество спутников, используемых для определения местоположения, а также укажите высоту в метрах и скорость в узлах.
Команда `geo nmea sentence` : отправляет NMEA 0183-сообщение на эмулируемое устройство так, как если бы оно было отправлено с эмулируемого GPS-модема. Начинайте сообщение с `$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 <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 type[:code]:[value] [...] : Отправляет одно или несколько фиктивных событий с необязательными кодами и значениями кодов.
EV_KEY — Ссылки на коды ключей
Тип события EV_KEY используется для имитации нажатий и отпусканий кнопок. В следующих таблицах обширный список поддерживаемых кодов клавиш разделен на логические категории. Для каждого кода клавиши отправка значения 1 имитирует нажатие, а значение 0 — отпускание. Значение 2 представляет собой повтор нажатия клавиши.
Подтаблица A: Системные клавиши Android
| Код | Описание |
|---|---|
KEY_HOME | триггер кнопки «Домой» |
KEY_BACK | Кнопка спуска сзади |
KEY_MENU | Кнопка меню (переполнение) |
KEY_POWER | Кнопка питания (нажатие/длительное нажатие) |
KEY_VOLUMEUP | кнопка увеличения громкости |
KEY_VOLUMEDOWN | кнопка уменьшения громкости |
KEY_CAMERA | Физическая кнопка спуска затвора камеры |
KEY_FOCUS | Автофокус камеры, затвор |
KEY_SEARCH | кнопка поиска (триггер) |
KEY_SLEEP | команда сна запускает |
KEY_WAKEUP | Команда пробуждения запускает |
KEY_NOTIFICATION | Открыть панель уведомлений |
KEY_MUTE | Отключить вывод звука системы |
KEY_MICMUTE | Отключить микрофонный вход |
KEY_BRIGHTNESSDOWN | Уменьшите яркость дисплея. |
KEY_BRIGHTNESSUP | Увеличьте яркость дисплея |
KEY_PHONE | Откройте приложение для набора номера по умолчанию. |
KEY_SEND | Совершить или инициировать телефонный звонок |
KEY_HEADSETHOOK | Кнопка вызова гарнитуры (ответ/завершение вызова) |
KEY_SCREEN | активировать команду заставки |
KEY_CONFIG | Меню системы конфигурации |
KEY_SWITCHVIDEOMODE | Переключить режим видеосистемы |
KEY_KBDILLUMTOGGLE | Включить/выключить подсветку клавиатуры |
Подтаблица B: Элементы управления воспроизведением и воспроизведением мультимедиа
| Код | Описание |
|---|---|
KEY_PLAYPAUSE | Переключение между режимами воспроизведения и паузы |
KEY_PLAY | Начать воспроизведение мультимедиа |
KEY_PAUSECD | Приостановить воспроизведение CD |
KEY_STOPCD | Остановить воспроизведение CD |
KEY_NEXTSONG | Перейти к следующему треку |
KEY_PREVIOUSSONG | Перейти к предыдущему треку |
KEY_REWIND | Перемотать активную дорожку |
KEY_FASTFORWARD | Активная перемотка вперед |
KEY_RECORD | Команда запуска записи |
KEY_SHUFFLE | Переключить воспроизведение в случайном порядке |
KEY_REPEAT | Включить/выключить повторное воспроизведение |
KEY_MEDIA | Триггер медиа-клавиши |
Подтаблица C: Навигация и общие клавиатуры
| Код | Описание |
|---|---|
KEY_UP | Нажатие кнопки "Вверх" на D-pad |
KEY_DOWN | Нажатие D-pad вниз |
KEY_LEFT | D-pad Направление влево |
KEY_RIGHT | D-pad Направление вправо |
KEY_PAGEUP | Навигация вверх по страницам |
KEY_PAGEDOWN | Навигация вниз по страницам |
KEY_INSERT | Вставить клавишу триггера |
KEY_DELETE | Удалить ключевой триггер |
KEY_ENTER | Триггер клавиши Enter |
KEY_ESC | Кнопка Escape (срабатывание клавиши Escape) |
KEY_TAB | триггер клавиши Tab |
KEY_SPACE | клавиша пробела |
KEY_BACKSPACE | клавиша Backspace срабатывает |
KEY_CLEAR | Очистить входной буфер |
KEY_CANCEL | Отменить активное действие |
KEY_OK | Подтвердить/ОК выбор |
KEY_SELECT | Выберите триггер элемента |
KEY_GOTO | Пройдите в указанное место. |
KEY_HELP | Доступ к контексту справки |
Подтаблица D: Буквенно-цифровые символы и символы клавиатуры
- Стандартные буквы алфавита: от
KEY_AдоKEY_Z(26 кодов). - Клавиши цифровой клавиатуры: от
KEY_1доKEY_0(10 кодов).
| Код | Символ |
|---|---|
KEY_COMMA | , |
KEY_DOT | . |
KEY_SLASH | / |
KEY_SEMICOLON | ; |
KEY_APOSTROPHE | ' |
KEY_GRAVE | \` |
KEY_MINUS | - |
KEY_EQUAL | = |
KEY_LEFTBRACE | [ |
KEY_RIGHTBRACE | ] |
KEY_BACKSLASH | \ |
KEY_KPASTERISK | * (Цифровая клавиатура) |
KEY_KPPLUS | + (Цифровая клавиатура) |
KEY_KPMINUS | - (Цифровая клавиатура) |
KEY_KPDOT | . Цифровая клавиатура) |
KEY_KPSLASH | / (Цифровая клавиатура) |
KEY_KPENTER | Enter (цифровая клавиатура) |
KEY_KPEQUAL | = (Цифровая клавиатура) |
KEY_KPCOMMA | , Цифровая клавиатура) |
KEY_KPJPCOMMA | , Японская раскладка) |
KEY_KPLEFTPAREN | ( (Цифровая клавиатура) |
KEY_KPRIGHTPAREN | ) (Цифровая клавиатура) |
KEY_KPPLUSMINUS | ± (Цифровая клавиатура) |
Подтаблица E: Клавиши-модификаторы и функциональные клавиши
- Стандартные функциональные клавиши: от
KEY_F1доKEY_F24(24 кода).
| Код | Описание |
|---|---|
KEY_LEFTSHIFT | клавиша Левая клавиша Shift (модификатор клавиатуры) |
KEY_RIGHTSHIFT | клавиша Shift |
KEY_LEFTCTRL | Левая клавиша Control (модификатор клавиатуры) |
KEY_RIGHTCTRL | Правая клавиша управления (Ctrl) — модификатор клавиатуры |
KEY_LEFTALT | клавиша Левая клавиша Alt (модификатор клавиатуры) |
KEY_RIGHTALT | клавиша Alt (правая клавиша) |
KEY_LEFTMETA | Левая клавиша Мета/Комман |
KEY_RIGHTMETA | Правая клавиша Мета/Комман |
KEY_CAPSLOCK | переключатель Caps Lock на клавиатуре |
KEY_NUMLOCK | Переключение клавиши Num Lock на клавиатуре |
KEY_SCROLLLOCK | Переключение клавиатуры Scroll Lock |
KEY_COMPOSE | Составьте вспомогательный символ |
KEY_FN | Физическая клавиша FN на клавиатуре |
KEY_FN_ESC | Комбинации функциональных клавиш |
KEY_FN_1 | Специальная комбинация клавиш 1 |
KEY_FN_2 | Специальная комбинация клавиш 2 |
KEY_FN_D | Специальная функциональная комбинация клавиш D |
KEY_FN_E | Специальная функциональная комбинация клавиш E |
KEY_FN_F | Специальная функциональная комбинация клавиш F |
KEY_FN_S | Специальная функциональная комбинация клавиш S |
KEY_FN_B | Специальная функциональная комбинация клавиш B |
Подтаблица F: Геймпады и джойстики
| Код | Описание |
|---|---|
BTN_A / BTN_B / BTN_C | Кнопки на лицевой панели контроллера A/B/C |
BTN_X / BTN_Y / BTN_Z | Кнопки на лицевой панели контроллера: X/Y/Z |
BTN_START | Кнопка меню «Пуск» на геймпаде |
BTN_SELECT | Кнопка выбора на геймпаде |
BTN_MODE | переключатель режима контроллера |
BTN_TL / BTN_TR | Левый/правый плечевой бампер |
BTN_TL2 / BTN_TR2 | Левый/правый аналоговые триггеры |
BTN_THUMBL / BTN_THUMBR | Нажатия левого/правого стика |
BTN_DPAD_UP | Кнопка D-pad, кнопка вверх |
BTN_DPAD_DOWN | Кнопка D-pad, нижний триггер |
BTN_DPAD_LEFT | Кнопка геймпада Левый триггер |
BTN_DPAD_RIGHT | Кнопка геймпада, правый триггер |
BTN_THUMB | Основной курок джойстика (кнопка для большого пальца) |
BTN_TOP / BTN_TOP2 | верхние кнопки джойстика |
BTN_PINKIE | Триггеры на мизинце джойстика |
BTN_BASE to _BASE6 | Кнопки на базовой платформе джойстика |
BTN_DEAD | Флаг неактивной мертвой зоны геймпада |
BTN_TRIGGER | Физический джойстик, ручной курок |
BTN_JOYSTICK | Универсальный код ввода джойстика |
Подтаблица G: Ввод с помощью мыши, сенсорного экрана и стилуса
| Код | Описание |
|---|---|
BTN_MOUSE | Универсальное событие указателя мыши |
BTN_LEFT | Щелчок левой кнопкой мыши |
BTN_RIGHT | Щелчок правой кнопкой мыши |
BTN_MIDDLE | Нажмите на среднее колесико прокрутки |
BTN_SIDE | Боковая кнопка управления навигацией |
BTN_EXTRA | Дополнительный триггер кнопки мыши |
BTN_FORWARD | Для перехода к следующему разделу браузера нажмите |
BTN_BACK | Назад к навигации браузера |
BTN_TASK | Клавиша переключения системных задач |
BTN_TOUCH | Обнаружен физический контакт с экраном |
BTN_STYLUS | Активный стилус с датчиком приближения |
BTN_STYLUS2 | Вторичный переключатель на стилусе |
BTN_TOOL_PEN | Идентификатор инструмента «Стилус» |
BTN_TOOL_RUBBER | Идентификатор инструмента «ластик для стилуса» |
BTN_TOOL_BRUSH | Идентификатор инструмента «Кисть художника» |
BTN_TOOL_PENCIL | Идентификатор инструмента «черчилльный карандаш» |
BTN_TOOL_AIRBRUSH | идентификатор инструмента для аэрографической покраски |
BTN_TOOL_FINGER | Сенсорный экран, касание пальцем |
BTN_TOOL_MOUSE | Внешний идентификатор инструмента мыши |
BTN_TOOL_LENS | Инструмент для оптической лупы |
BTN_TOOL_DOUBLETAP | Жест двойного нажатия флага скорости |
BTN_TOOL_TRIPLETAP | Жест тройного нажатия флага скорости |
Подтаблица H: Ярлыки приложений
| Код | Целевое действие |
|---|---|
KEY_WWW | Запускает веб-браузер по умолчанию. |
KEY_MAIL | Открывает почтовый клиент по умолчанию |
KEY_BOOKMARKS | Открывает список закладок браузера |
KEY_CALC | Открывает утилиту калькулятора |
KEY_FILE | Открывает проводник локальных файлов |
KEY_EDIT | триггер редактирования документа |
KEY_NEW | Документ создает новый триггер |
KEY_OPEN | Триггер открытия документа |
KEY_SAVE | Запуск задачи сохранения файла |
KEY_CLOSE | триггер задачи закрытия файла |
KEY_PRINT | Запуск задачи печати файла |
KEY_COPY | действие копирования буфера обмена |
KEY_PASTE | вставка в буфер обмена |
KEY_CUT | действие «Вырезать буфер обмена» |
KEY_UNDO | Отмена действия в буфере обмена |
KEY_REDO | Повтор действия в буфере обмена |
KEY_CANCEL | Запуск процесса отмены буфера |
KEY_FIND | утилита поиска документов |
KEY_REFRESH | утилита обновления документа |
KEY_EXIT | утилита закрытия документа |
KEY_DOCUMENTS | Запуск портала системной документации |
KEY_HOMEPAGE | Запускает домашнюю страницу браузера. |
KEY_FAVORITES | Открывает портал избранного в браузере |
KEY_CHAT | Запуск мессенджера |
KEY_EMAIL | Альтернативный триггер запуска электронного письма |
KEY_FINANCE | Открытая акция/финансовая утилита |
KEY_SPORT | Открытая утилита для отслеживания спортивных результатов |
KEY_SHOP | Открытый цифровой торговый портал |
KEY_PLAYER | Открытый основной медиаплеер |
KEY_MP3 | Открыть основной MP3-плеер |
KEY_TEXT | Открыть текстовый редактор по умолчанию |
KEY_LIST | Открыть утилиту для составления контрольных списков |
KEY_MEMO | Откройте блокнот/заметки. |
KEY_CALENDAR | Открывает портал календаря/планировщика. |
KEY_DIRECTORY | Открывает системный адресный каталог |
KEY_COMPUTER | Открывает оболочку спецификаций |
KEY_TV / KEY_TV2 | Запуск телевизионного портала |
KEY_RADIO | Запуск радиоприложения |
KEY_CD / KEY_DVD | Активирует считыватель оптических приводов |
KEY_AUDIO / KEY_VIDEO | Доступ к спецификациям носителей |
KEY_TUNER | Настраивает ресиверы/тюнеры. |
KEY_SAT / KEY_SAT2 | Настраивает спутниковые каналы |
KEY_TAPE | Воспроизвести кассетный медиаплеер |
KEY_VCR | Воспроизвести видеопоток с видеомагнитофона |
KEY_VCR2 | Воспроизведение видео с двух плееров |
KEY_AUX | Дополнительные медиавходы |
KEY_SETUP | Меню настройки конфигурации |
KEY_PROG1 to _PROG4 | Пользовательские программные клавиши |
KEY_ZOOM | Переключение масштабирования области просмотра |
KEY_MODE | Выберите режим просмотра. |
KEY_KEYBOARD | Показать/скрыть виртуальную клавиатуру |
KEY_LANGUAGE | Переключить язык звуковой дорожки |
KEY_TITLE | Открыть параметры заголовка медиафайла |
KEY_SUBTITLE | Переключить интерфейс субтитров |
KEY_ANGLE | Изменить ракурс видеокамеры |
KEY_EPG | Открытая электронная программа передач |
KEY_PVR | Откройте персональный видеорегистратор |
KEY_MHP | Открытая мультимедийная домашняя платформа |
KEY_CHANNEL | Открыть каналы ТВ-тюнера |
KEY_CHANNELUP | Настройте телеканал на более высокую частоту. |
KEY_CHANNELDOWN | Переключите телеканал на более низкий канал. |
KEY_RED | Красная интерактивная кнопка |
KEY_GREEN | Зеленая интерактивная кнопка |
KEY_YELLOW | Желтая интерактивная кнопка |
KEY_BLUE | Синяя интерактивная кнопка |
KEY_FIRST | Выберите первый вариант |
KEY_LAST | Выберите последний вариант |
KEY_NEXT | Выберите следующий трек |
KEY_PREVIOUS | Выберите предыдущий трек |
KEY_RESTART | Перезапустить цикл воспроизведения медиатрека |
KEY_SLOW | Функция замедленной съемки |
KEY_AB | Петля повторяющейся последовательности AB |
KEY_PLAYCD | Команда воспроизведения CD-проигрывателя |
KEY_PAUSECD | Команда паузы CD-проигрывателя |
KEY_STOPCD | команда остановки CD-проигрывателя |
KEY_DIGITS | Команда ввода с цифровой клавиатуры |
KEY_TEEN | опция «Ценности подростков» на клавиатуре |
KEY_TWEN | Вариант выбора из двух значений на клавиатуре |
KEY_DEL_EOL | Удалить в конец буфера строки |
KEY_DEL_EOS | Удалить в конец буфера экрана |
KEY_INS_LINE | Вставить новый буфер строки |
KEY_BRL_DOT1 to _DOT8 | Кнопки ввода на брайлевском дисплее |
KEY_VOICECOMMAND | Запуск приложения голосового помощника |
KEY_SELECTIVE_SCREEN | Запускает создание региональных скриншотов |
KEY_BATTERY | Запросы уведомлений о состоянии батареи |
KEY_STAR / KEY_SHARP | Символы телефонной клавиатуры |
KEY_PLUS | Телефонная клавиатура, символ плюса |
KEY_INFO | Показать наложение информационной панели |
KEY_TIME | Показать текущее время по часам |
KEY_VENDOR | Запросы к спецификациям поставщика |
KEY_ARCHIVE | Открывает утилиту локального архива |
KEY_PROGRAM | Настраивает параметры программы. |
KEY_POWER2 | Запускает альтернативное резервное питание |
EV_ABS — События абсолютного движения
Тип события EV_ABS имеет решающее значение для имитации точных касаний, жестов перетаскивания, многопальцевых действий масштабирования и настроек джойстика. Приведенные ниже абсолютные координаты напрямую соответствуют физическому разрешению экрана.
| Код | Диапазон координат | Описание |
|---|---|---|
ABS_MT_TRACKING_ID | -1 или ≥0 | Идентификатор отслеживания; -1 конец касается |
ABS_MT_POSITION_X | 0 до 1767 | Координата X (свертка пикселя) |
ABS_MT_POSITION_Y | 0 до 2207 | Координата Y (свертка пикселей) |
ABS_MT_TOUCH_MAJOR | пиксели | Ширина основной оси зоны касания |
ABS_MT_TOUCH_MINOR | пиксели | Ширина малой оси зоны касания |
ABS_MT_WIDTH_MAJOR | пиксели | ширина главной оси инструмента |
ABS_MT_WIDTH_MINOR | пиксели | Ширина малой оси инструмента |
ABS_MT_ORIENTATION | 0 до 255 | Угол ориентации контакта |
ABS_MT_PRESSURE | 0 до 255 | Величина контактной силы |
ABS_MT_DISTANCE | мм | Расстояние от курсора до экрана |
ABS_MT_TOOL_TYPE | 0 до 2 | 0 = палец, 1 = ручка, 2 = карандаш |
ABS_MT_BLOB_ID | целое число | Идентификатор контактного блоба |
ABS_MT_TOOL_X | пиксели | Координата X инструмента |
ABS_MT_TOOL_Y | пиксели | Координата Y инструмента |
ABS_MT_SLOT | 0 до N | Активный слот (Протокол B) |
ABS_X / _Y / _Z | аналоговый | координатные оси джойстика |
ABS_RX / _RY / _RZ | аналоговый | оси вращения джойстика |
ABS_THROTTLE / _BRAKE | аналоговый | Педали и органы управления рулевым колесом |
ABS_HAT0X / _HAT0Y | -1 / 0 / 1 | Кнопка D-pad и переключатели POV |
ABS_PRESSURE | 0 до 255 | Уровень силы нажатия стилуса/указателя |
ABS_DISTANCE | мм | Расстояние наведения курсора (стилус) |
ABS_TILT_X / _TILT_Y | градусы | Углы наклона стилуса |
ABS_VOLUME | аналоговый | уровни громкости контроллера |
Взаимодействие с сенсорным экраном Android осуществляется с помощью протоколов Multi-touch (MT). Современные эмуляторы реализуют как протокол A (без сохранения состояния, отправка пакетов контактов, разделенных метками синхронизации), так и протокол B (с сохранением состояния, назначение контактов выделенным слотам для отслеживания). Протокол B позволяет эффективно отслеживать несколько одновременных касаний для таких жестов, как масштабирование с помощью щипка.
EV_REL и EV_SW — Датчики движения и аппаратные переключатели
Категория событий EV_REL управляет относительными изменениями указателя или координат, что в основном используется для эмуляции движений внешней мыши или колесика прокрутки. Категория событий EV_SW управляет физическими переключениями устройств, например, сложен ли телефон-раскладушка или планшет, или подключено ли внешнее аудиооборудование.
| Код | Ценности | Описание |
|---|---|---|
REL_X | Дельта | Горизонтальное перемещение курсора |
REL_Y | Дельта | Вертикальное перемещение курсора |
SW_LID | 0 / 1 | Состояние крышки ноутбука ( 0 = Открыта, 1 = Закрыта) |
SW_TABLET_MODE | 0 / 1 | Состояние режима планшета ( 0 = Выкл., 1 = Активен) |
SW_HEADPHONE_INSERT | 0 / 1 | Состояние разъема для наушников ( 0 = выход, 1 = вход) |
SW_MICROPHONE_INSERT | 0 / 1 | Состояние разъема для микрофона ( 0 = выход, 1 = вход) |
Синтаксис диспетчеризации команд
Для отправки этих кодов отформатируйте команду консоли, указав типы, коды и значения, разделенные двоеточиями. Вы можете поставить в очередь несколько изменений координат в одной строке. Важно всегда добавлять метку окончательной синхронизации ( EV_SYN:0:0 ), чтобы указать, что платформа эмулятора должна объединить и обработать эти входные данные вместе.
Примеры создания сценариев событий и жестов.
Благодаря возможности отправки многокомпонентных параметров через Telnet, вы можете имитировать реалистичные последовательности физических жестов. Ниже представлены структуры сценариев событий для автоматизации жестов с консоли вашего хоста.
Имитация касания экрана
Для выполнения чистого касания экрана в целевой точке необходимо присвоить идентификатор отслеживания, указать координаты X и Y на экране, имитировать касание, синхронизировать действия, а затем отпустить.
# Press down at coordinate (400, 800) and sync
event send EV_ABS:ABS_MT_TRACKING_ID:1
OK
event send EV_ABS:ABS_MT_POSITION_X:400
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Lift finger up and sync
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Имитация вертикальной прокрутки (свайпа)
Для выполнения жеста прокрутки и смахивания удерживайте палец на начальной точке, отправьте промежуточные кадры координат движения и отпустите в конце.
# Finger touch down at start coordinate (500, 1600)
event send EV_ABS:ABS_MT_TRACKING_ID:2
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1600
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Move coordinates upward dynamically
event send EV_ABS:ABS_MT_POSITION_Y:1200
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:800
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_POSITION_Y:400
OK
event send EV_SYN:0:0
OK
# Finger release at coordinate (500, 400)
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Имитация жеста масштабирования "щипком".
Для активации масштабирования двумя пальцами используйте активные слоты MT (0 и 1) для отслеживания и координации двух одновременно движущихся друг от друга координат касания.
# Finger 1 down at (500, 1000) using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:10
OK
event send EV_ABS:ABS_MT_POSITION_X:500
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_KEY:BTN_TOUCH:1
OK
event send EV_SYN:0:0
OK
# Finger 2 down at (600, 1000) using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:11
OK
event send EV_ABS:ABS_MT_POSITION_X:600
OK
event send EV_ABS:ABS_MT_POSITION_Y:1000
OK
event send EV_SYN:0:0
OK
# Fingers slide apart from each other
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_POSITION_X:300
OK
event send EV_SYN:0:0
OK
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_POSITION_X:800
OK
event send EV_SYN:0:0
OK
# Lift Finger 1 using slot 0
event send EV_ABS:ABS_MT_SLOT:0
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_SYN:0:0
OK
# Lift Finger 2 using slot 1
event send EV_ABS:ABS_MT_SLOT:1
OK
event send EV_ABS:ABS_MT_TRACKING_ID:-1
OK
event send EV_KEY:BTN_TOUCH:0
OK
event send EV_SYN:0:0
OK
Имитация переключателя подключения наушников
Имитируйте вставку или извлечение разъема для наушников, чтобы проверить работу переключателей маршрутизации звука. Значение 1 означает вставку разъема, а 0 — извлечение наушников.
# Simulate headphones plugged in
event send EV_SW:SW_HEADPHONE_INSERT:1 EV_SYN:0:0
OK
# Simulate headphones unplugged
event send EV_SW:SW_HEADPHONE_INSERT:0 EV_SYN:0:0
OK
Обнаружение кодов событий консоли на реальном устройстве
Чтобы узнать точную последовательность синтаксиса событий для любого пользовательского действия или жеста кнопки, подключитесь через adb shell и запустите диагностическую утилиту getevent . При взаимодействии с графическим интерфейсом эмулятора консоль выведет точные коды событий, их типы и позиции.
# Run getevent to monitor input events dynamically
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
- Событие текстового сообщения : отправляет строку символов, имитирующих нажатия клавиш. Сообщение должно быть строкой UTF-8. Символы Unicode преобразуются в обратном порядке в соответствии с текущей клавиатурой устройства, а неподдерживаемые символы отбрасываются без уведомления.
Управление состоянием питания
Индикатор заряда батареи : отображает состояние батареи и зарядного устройства.
power ac {on| off} : Устанавливает состояние зарядки переменным током в положение «вкл.» или «выкл.».
Состояние питания {неизвестно| зарядка| разрядка| не заряжается| полностью заряжено} : Изменяет состояние батареи в соответствии с указанными параметрами.
Наличие питания {true| false} : Устанавливает состояние наличия батареи.
Состояние батареи {неизвестно| хорошее| перегрев| неисправна| перенапряжение| отказ} : Устанавливает состояние батареи.
Процент емкости батареи : устанавливает оставшуюся емкость батареи в процентах от 0 до 100.
Состояние сетевого подключения (только для Ethernet и сотовой связи)
Состояние сети : Проверяет состояние сети, а также текущие характеристики задержки и скорости.
network delay latencyизменяет эмулируемую задержку сети.Эмулятор позволяет имитировать различные уровни задержки сети, чтобы вы могли тестировать свое приложение в среде, более типичной для реальных условий работы. Вы можете установить уровень или диапазон задержки при запуске эмулятора, или же использовать консоль для изменения задержки во время работы приложения в эмуляторе.
Формат измерения сетевой задержки может быть одним из следующих (числа указаны в миллисекундах):
Формат задержки сети:
GPRS : протокол GPRS, использующий диапазон задержки от 150 до 550 Мбит/с.
edge : EDGE/EGPRS, использующий диапазон задержки от 80 до 400.
UMTS : UMTS/3G, использующий диапазон задержки от 35 до 200.
нет : Нет задержки.
num : Имитирует указанную задержку в миллисекундах.
min:max : Имитирует указанный диапазон задержки.
Для установки задержки при запуске эмулятора используйте параметр эмулятора
-netdelayс поддерживаемым значением задержки. Примеры:emulator -netdelay gprs emulator -netdelay 40,100Чтобы изменить задержку сети во время работы эмулятора, подключитесь к консоли и используйте команду
network delay:network delay gprs network delay 40 100Эмулятор позволяет имитировать различные скорости передачи данных
network speed speed. Вы можете установить скорость или диапазон скорости при запуске эмулятора, или же изменить скорость в консоли во время работы приложения в эмуляторе.Скорость сети указывается в одном из следующих форматов (числа — килобиты/сек):
Формат скорости сети:
GSM : GSM/CSD, скорость передачи данных 14,4 В на загрузку и 14,4 В на выгрузку.
hscsd : HSCSD, использующий скорость 14,4 Мбит/с на загрузку и 43,2 Мбит/с на выгрузку.
GPRS : протокол GPRS, обеспечивающий скорость 40 Мбит/с на загрузку и 80 Мбит/с на выгрузку.
edge : EDGE/EGPRS, скорость передачи данных составляет 118,4 Мбит/с на загрузку и 236,8 Мбит/с на выгрузку.
UMTS : UMTS/3G, использующий скорость 128,0 Мбит/с на загрузку и 1920 Мбит/с на выгрузку.
hsdpa : HSDPA, использующий скорость 348,0 Мбит/с на загрузку и 14 400,0 Мбит/с на выгрузку.
LTE : LTE, использующий скорость 58 000 Мбит/с на загрузку и 173 000 Мбит/с на выгрузку.
evdo : EVDO, использующий скорость 75 000 Мбит/с на загрузку и 280 000 Мбит/с на выгрузку.
Полный режим : неограниченная скорость, но зависит от скорости вашего интернет-соединения.
num : Задает точную скорость в килобитах в секунду, используемую как для загрузки, так и для скачивания.
up:down : Устанавливает точную скорость загрузки и выгрузки в килобитах в секунду отдельно.
Для установки скорости сети при запуске эмулятора используйте параметр
-netspeedemulator. Примеры:emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26Чтобы изменить скорость сети во время работы эмулятора, подключитесь к консоли и используйте команду
network speed:network speed 14.4 80network capture {start| stop} fileотправляет пакеты в файл. Ниже приведен список параметров и их значений:Примечание: Начиная с Android Emulator 36.5 и более поздних версий, трафик Wi-Fi-соединений по умолчанию обрабатывается netsim. Команда захвата сетевого трафика в консоли захватывает только устаревший сотовый/WAN-трафик, маршрутизируемый через стек QEMU slirp. Для захвата пакетов Wi-Fi, Bluetooth или расширенных сетевых пакетов в современных версиях эмулятора см. раздел «Захват сетевого трафика» в руководстве по расширенным сетевым настройкам эмулятора.
start file : Начинает захват сетевых пакетов. В целях безопасности имя файла должно быть простым (без разделителей пути, таких как
/, и без..). Файл захвата пакетов будет сохранен в каталоге содержимого вашего AVD в папкеconsole_out/(например,~/.android/avd/avd_name.avd/console_out/file).stop file : Останавливает отправку пакетов в указанный файл.
Эмуляция телефонии
Эмулятор Android включает в себя собственные эмулируемые модемы GSM и CDMA, позволяющие имитировать телефонные функции в эмуляторе. Например, с GSM можно имитировать входящие телефонные звонки, а также устанавливать и завершать соединения для передачи данных. С CDMA вы указываете источник подписки и предпочтительный список роуминга. Система Android обрабатывает имитированные звонки точно так же, как и реальные. Эмулятор не поддерживает аудиосвязь во время звонков.
gsm {call| accept| cancel| busy} phonenumberПараметры GSM следующие:- call : Имитирует входящий телефонный звонок с указанного номера телефона.
- accept : Принимает входящий вызов с указанного номера телефона и изменяет состояние вызова на активное. Вы можете изменить состояние вызова на активное только в том случае, если его текущее состояние — ожидание или удержание.
- Отмена : Завершает входящий телефонный звонок с этого номера или исходящий телефонный звонок на этот номер.
- Состояние "занято" : Закрывает исходящий вызов на указанный номер телефона и изменяет состояние вызова на "занято". Вы можете изменить состояние вызова на "занято" только тогда, когда его текущее состояние - "ожидание".
Команда
gsm {data| voice} stateизменяет состояние соединения GPRS, а команда `voice state` изменяет состояние соединения GPRS, как показано ниже:- Незарегистрированный пользователь : Нет доступной сети.
- Домашняя сеть : В локальной сети, без роуминга.
- Роуминг : В роуминговой сети.
- Поиск : Поиск в сетях.
- Запрещено : только экстренные вызовы.
- выключено : То же самое, что и незарегистрированный.
- on : То же, что и дома.
Функция GSM Hold : Изменяет состояние вызова на удержание. Вы можете изменить состояние вызова на удержание только тогда, когда его текущее состояние — активное или ожидание.
gsm list : Отображает список всех входящих и исходящих вызовов и их статус.
Статус GSM : Отображает текущее состояние голосовой связи/передачи данных в сети GSM. Значения соответствуют значениям, указанным для команд голосовой связи и передачи данных.
gsm signal {rssi| ber}Изменяет сообщаемый уровень сигнала (rssi) и частоту битовых ошибок (ber) в течение следующих 15 секунд обновления. Ниже приведен список параметров и их значений:- rssi : диапазон значений от 0 до 31, а для неизвестного значения — 99.
- ber : диапазон значений от 0 до 7, а для неизвестного значения — 99.
gsm signal-profile num : Задает профиль уровня сигнала. num — число от 0 до 4.
cdma ssource sourceЗадает текущий источник подписки CDMA, где source — это список разрешенных абонентов на основе сети, содержащий абонентов оператора CDMA и их значения, следующим образом:- nv : Считывает данные подписки из энергонезависимой оперативной памяти.
- ruim : Считывает данные о подписке из съемного модуля идентификации пользователя (RUIM).
cdma prl_version version : Выводит текущую версию списка предпочтительных роуминговых номеров (PRL). Номер версии относится к базе данных PRL, содержащей информацию, используемую в процессе выбора и приобретения системы.
Управление датчиками в эмуляторе
Эти команды указывают, какие датчики доступны в AVD. Помимо использования команды sensor, вы можете просмотреть и настроить параметры эмулятора на экране «Виртуальные датчики» на вкладках «Акселерометр» и «Дополнительные датчики».
Состояние датчиков : Отображает список всех датчиков и их состояние.
sensor get sensor-name : Получает настройки для параметра sensor-name. В следующем примере получается значение для акселерометра:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348Значения ускорения, разделенные двоеточиями (:), относятся к координатам x, y и z виртуальных датчиков.
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-сообщение. Ниже приведен список параметров и их значений:- sender-phone-number : Содержит произвольную числовую строку.
- текстовое сообщение : SMS-сообщение.
В следующем примере сообщение "hi there" отправляется на номер телефона 4085555555:
sms send 4085555555 hi there
Консоль пересылает SMS-сообщение в Android-фреймворк, который передает его приложению на эмуляторе, обрабатывающему SMS, например, приложению «Сообщения». Если вы передадите 10 цифр, приложение отформатирует их как номер телефона. Более длинные или короткие числовые строки будут отображаться в том виде, в котором вы их отправили.
имитация отпечатков пальцев
finger touch fingerprint-id : Имитирует касание пальца к датчику.
Удаление пальца : Имитирует удаление пальца.
Инструкции по использованию этих команд см. в следующем разделе, посвященном моделированию и проверке отпечатков пальцев .
Запись экрана
Команда записи экрана позволяет захватывать высококачественные видеофайлы с физического дисплея эмулятора непосредственно из хост-системы. Это очень полезно для конвейеров непрерывной интеграции и автоматизированного сообщения об ошибках.
-
screenrecord {start| stop} fileЗапускает или останавливает процесс записи экрана.- start file : Запускает запись видео. Выходной файл должен иметь обязательное расширение
.webm. Захваченное видео сохраняется непосредственно в каталог вывода консоли вашего AVD:~/.android/avd/avd_name.avd/console_out/file. - stop file : Останавливает активный процесс записи на экране.
- start file : Запускает запись видео. Выходной файл должен иметь обязательное расширение
Автоматизация и макроэкономика
Подсистема автоматизации позволяет разработчикам записывать переходы состояний макросов на работающем виртуальном устройстве и воспроизводить их для выполнения автоматизированных тестовых сценариев.
-
automation {record| stop-record| play| stop-play}Управляет автоматической записью макросов.- record : Начинает запись изменений состояния устройства и входных сигналов.
- stop-record : Останавливает текущую сессию записи макроса.
- play : Начинает воспроизведение записанной макропоследовательности.
- stop-play : Останавливает активную последовательность воспроизведения макросов.
Физика (6 степеней свободы)
Физические команды управляют регистрацией пространственных положений эталонных данных для моделей физического движения с шестью степенями свободы (6DoF), которые используются для моделирования расширенного отслеживания движений.
-
physics {record-gt| stop}Управляет записью физической модели позы.- record-gt : Начинает запись эталонных данных о движении по 6 степеням свободы.
- stop : Останавливает текущий процесс проверки достоверности данных.
Расширенные элементы управления устройством
В этом разделе собраны специализированные конечные точки консольных команд для расширенных конфигураций эмуляции, включая сетевые прокси, конфигурации с несколькими дисплеями, переопределение рендеринга и прямую отладку гипервизора.
multidisplay {add| del}Добавляет или удаляет дополнительные виртуальные мониторы для тестирования многоэкранных конфигураций. Примечание: Дополнительные мониторы не поддерживаются в профилях Fold, таких как Pixel Fold или эмулятор Resizable.proxy {set| clear}Настраивает переадресацию сетевого прокси программно из консоли.- set host port : Настраивает параметры целевого прокси-сервера.
- clear : Сбрасывает настройки прокси-сервера до значений по умолчанию. Примечание: Операции по настройке прокси-сервера завершаются с ошибкой в средах выполнения без графического интерфейса.
virtualscene-image {wall| table} image_pathНастраивает фоновые стены или горизонтальные столы, отображаемые на видеопотоке виртуальной сцены, с помощью пользовательского файла изображения.resize-display scaleдинамически регулирует разрешение экрана между заданными значениями. Примечание: регулировка разрешения не поддерживается в безмониторных конфигурациях.nodraw {on| off}Отключает физическую отрисовку графического интерфейса пользователя на экране хоста для снижения нагрузки на системную память и графический процессор во время выполнения большого объема фоновых автоматизированных задач в безмониторном режиме.grpc portНастраивает расширенное программное управление устройствами через пользовательские конечные точки портов gRPC.qemu monitorобеспечивает прямой интерактивный доступ к консоли базового гипервизора. Ввод этой команды возможен только через активные сеансы консоли Telnet.icebox track pidВключает автоматическое создание снимков системы при возникновении необработанного исключения или сбоя в указанном процессе приложения.phonenumber numberУстанавливает виртуальный локальный номер телефона целевого устройства.
программный интерфейс gRPC
Современные версии эмуляторов поддерживают мощный программный интерфейс gRPC наряду с устаревшей консолью Telnet. В то время как консоль Telnet отлично подходит для быстрых интерактивных сессий или простого написания скриптов, интерфейс gRPC разработан для высокопроизводительного, безопасного и надежного автоматизированного управления в средах непрерывной интеграции (CI) и безголовых средах. Предлагая прямые конечные точки сервисов, gRPC устраняет необходимость в анализе текстовых потоков, управлении рукопожатиями терминальных сессий или открытии незашифрованных портов localhost.
Чтобы помочь вам выбрать между устаревшей консолью Telnet и современным программным интерфейсом gRPC, ознакомьтесь со следующим сравнением производительности, безопасности и функциональных возможностей:
| Особенность | Консоль Telnet | Интерфейс gRPC |
|---|---|---|
| Лучше всего подходит для | Ручная отладка, интерактивные сессии. | Безголовые системы CI/CD, мощные автоматизированные испытательные стенды. |
| Скорость | Более низкая скорость; избыточный текст, задержка соединения. | Оптимизированный; мультиплексированный HTTP/2, быстрый прототип. |
| Безопасность | Незашифровано; локальные порты (5554–5585). | Может быть защищен протоколом TLS, работает в сетях. |
| Потоки | Не поддерживается; только запрос-ответ. | Потоки для logcat, захвата гостевого аудио. |
| СМИ | Записывает выходные файлы на диск хоста/гостевой системы. | Бинарные буферы, передаваемые напрямую по сети. |
| Гостевая ОС | Доступно только для фиксированных команд эмулятора. | Выполняет собственные команды гостевой оболочки bash. |
Запуск и вызов gRPC
Для использования конечных точек gRPC запустите эмулятор Android из командной строки и добавьте флаг -grpc , указав целевой порт обратной связи.
# Start the emulator with the gRPC service enabled on port 8556
emulator -grpc localhost:8556 @Pixel_Fold
После запуска эмулятора с включенной службой gRPC вы можете выполнять программные RPC-вызовы. Для тестирования из командной строки используйте утилиту grpcurl для связи со службами эмулятора. Все запросы форматируются в формате JSON и передаются в виде обычного текста.
# Query the status of the virtual device using grpcurl
grpcurl -plaintext -d '{}' localhost:8556 \
android.emulation.control.EmulatorController/getStatus
# Simulate an incoming phone call
grpcurl -plaintext -d '{"operation": "InitCall", "number": "1234567890"}' localhost:8556 \
android.emulation.control.EmulatorController/sendPhone
# Simulate typing text into the guest OS
grpcurl -plaintext -d '{"text": "Hello"}' localhost:8556 \
android.emulation.control.EmulatorController/sendKey
сопоставление Telnet-консоли с сервисом gRPC
В приведенной ниже справочной таблице сопоставлены устаревшие команды консоли Telnet с соответствующими службами и методами gRPC, что указывает на способы программной автоматизации распространенных взаимодействий с виртуальными устройствами:
| Категория | Устаревшая команда Telnet | gRPC-сервис / метод |
|---|---|---|
| Статус | ping | EmulatorController/getStatus |
| Статус | avd name | incubating.AvdService/getAvdInfo |
| Статус | kill | EmulatorController/setVmState |
| Статус | restart | EmulatorController/setVmState |
| Власть | power display | EmulatorController/getBattery |
| Власть | power capacity | EmulatorController/setBattery |
| Геолокация | geo fix | EmulatorController/setGps |
| Датчики | sensor set | incubating.SensorService/setSensor |
| Биометрия | finger touch | EmulatorController/sendFingerprint |
| Поза | posture | EmulatorController/setPosture |
| Поза | physics / fold | EmulatorController/setPhysicalModel |
| SMS | sms send | EmulatorController/sendSms |
| GSM-звонок | gsm call | EmulatorController/sendPhone |
| GSM-звонок | phonenumber | EmulatorController/setPhoneNumber |
| Перенаправление | redir add | Waterfall/ForwardPort |
| Вход | event send EV_KEY | EmulatorController/sendKey |
| Вход | event send EV_ABS | EmulatorController/sendTouch |
| СМИ | screenrecord | incubating.ScreenRecording |
| Визуализация | nodraw | EmulatorController/setDisplayMode |
| Снимки | avd snapshot list | SnapshotService/ListSnapshots |
| Снимки | avd snapshot load/save | SnapshotService/LoadSnapshot |
Программные команды, уникальные для gRPC.
Интерфейс gRPC предоставляет ряд передовых возможностей, которые физически невозможно реализовать через устаревшие консольные соединения Telnet. К ним относятся прямая потоковая передача logcat, двунаправленный захват или внедрение звука, модификация графического интерфейса хоста и прямой доступ к командной оболочке.
| gRPC-сервис / метод | Параметр | Возможности |
|---|---|---|
streamLogcat | {"maxLines": 100} | Потоковая передача логов гостевой системы logcat |
streamAudio | {} | Передает аудиопоток через проводное соединение. |
injectAudio | {"audio": "..."} | Вставляет аудиопотоки с микрофона |
UiController | {"theme": "DARK"} | Изменяет темы оформления окна хоста. |
Waterfall/Exec | {"cmd": "ls"} | Выполняет собственные команды оболочки гостевой ОС. |
Моделирование и проверка отпечатков пальцев

Используйте команду finger для имитации и проверки аутентификации по отпечатку пальца в вашем приложении. Вам потребуется SDK Tools 24.3 или выше и Android 6.0 (уровень API 23) или выше.
Для имитации и проверки аутентификации по отпечатку пальца выполните следующие действия:
Если у вас еще нет отпечатка пальца, зарегистрируйте новый отпечаток в эмуляторе, выбрав «Настройки» > «Безопасность» > «Отпечаток пальца» и следуя инструкциям по регистрации.
Настройте приложение для аутентификации по отпечатку пальца . После выполнения этой настройки на вашем устройстве отобразится экран аутентификации по отпечатку пальца.
Пока ваше приложение отображает экран аутентификации по отпечатку пальца, перейдите в консоль и введите команду
finger touchи созданный вами идентификатор отпечатка пальца. Это имитирует касание пальца.Then, enter the
finger removecommand to simulate finger removal. Your app should respond as if a user touched and then removed their finger from the fingerprint sensor.