Cada dispositivo virtual em execução dispõe de um console que permite consultar e controlar o ambiente do dispositivo emulado. Por exemplo, é possível usar o console para gerenciar redirecionamentos de porta, características de rede e eventos de telefonia enquanto o app é executado no emulador.
Os comandos a seguir exigem que um emulador já esteja em execução. Para mais informações sobre como executar um emulador, consulte Executar apps no Android Emulator e Iniciar o emulador na linha de comando.
Iniciar e parar uma sessão do console
Para acessar o console e inserir comandos em uma janela de terminal, use telnet para se conectar à porta do console e informe o token de autenticação. Cada vez que o console mostra OK, ele está pronto para aceitar comandos. Não há um comando típico.
Para conectar-se ao console de um dispositivo virtual em execução:
Abra uma janela de terminal e insira o seguinte comando:
telnet localhost console-portO título da janela do emulador lista o número da porta do console quando executado em uma janela separada, mas não em uma de ferramentas. Por exemplo, o título da janela de um emulador usando a porta de console 5554 pode ser Pixel8_API_34:5554. Além disso, o comando
adb devicesmostra uma lista de dispositivos virtuais em execução e os números de porta de console. Para mais informações, consulte Consultar dispositivos.Observação:o emulador detecta conexões nas portas 5554 a 5585 e aceita conexões apenas do localhost.
Depois que o console exibir OK, insira o comando
auth auth_token.Para que você insira comandos, o console do emulador requer autenticação.
auth_tokenprecisa corresponder ao conteúdo do arquivo.emulator_console_auth_tokenno seu diretório inicial.O comando
telnet localhost console-portcria esse arquivo, que contém um token de autenticação gerado aleatoriamente, caso ele não exista. Para desativar a autenticação, exclua o token do arquivo.emulator_console_auth_tokenou crie um arquivo vazio se ele não existir.Depois de se conectar ao console, insira os comandos.
Digite
help,help commandouhelp-verbosepara ver uma lista de comandos de console e saber mais sobre comandos específicos.Para sair da sessão de console, insira
quitouexit.
Veja um exemplo de sessão:
$ 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.
Comandos de execução e esquecimento
Se você não precisar manter a sessão aberta, use o atalho adb emu, que
executa o comando e retorna imediatamente o controle ao shell de invocação:
adb emu command commandParameter
A invocação com adb emu se conecta ao emulador disponível. Se você tiver
vários emuladores em execução ao mesmo tempo, transmita o número de série do
emulador específico que você está segmentando:
adb -s emulator-serial emu command commandParameter
Referência de comando do emulador
As listas a seguir descrevem os comandos do console do emulador com os parâmetros e valores relacionados:
Comandos gerais
avd {stop| start| status| name}Consulta, controla e gerencia o dispositivo virtual da seguinte maneira:- stop: para a execução do dispositivo.
- start: inicia a execução do dispositivo.
- status: consulta o status do dispositivo virtual, que pode ser "running" ou "stopped".
- name: consulta o nome do dispositivo virtual.
avd snapshot {list| save name| load name| delete name}Salva e restaura o estado do dispositivo em snapshots desta maneira:- list: lista todos os snapshots salvos.
- save name: salva o snapshot como nome.
- load name: carrega o snapshot nomeado.
- delete name: exclui o snapshot nomeado.
O exemplo a seguir salva um snapshot com o nome
firstactivitysnapshot:avd snapshot save firstactivitysnapshotfold: dobra o dispositivo para mostrar a menor configuração da tela se ele for dobrável e estiver aberto no momento.
desdobrar: desdobra o dispositivo para mostrar a maior configuração da tela se ele for dobrável e estiver dobrado no momento.
kill: encerra o dispositivo virtual.
ping: verifica se o dispositivo virtual está sendo executado.
rotate: gira o AVD no sentido anti-horário em incrementos de 45 graus.
Falha no emulador
crash: causa uma falha no emulador durante a execução do app.
crash-on-exit: causa uma falha no emulador quando o app é encerrado.
Tags de depuração
tags de depuração ...: ativa ou desativa mensagens de depuração de partes específicas do emulador. O parâmetro "tags" precisa ser um valor da lista de tags de depuração que aparece quando você executa
emulator -help-debug-tags. Para mais informações sobre a opção-help-debug-tags, consulte a tabela de opções usadas com mais frequência. O exemplo a seguir ativa a tag "radio":debug radio
Redirecionamento de porta
redir list: lista o redirecionamento de porta atual.
redir add protocol:host-port:guest-portAdiciona um novo redirecionamento de porta, da seguinte maneira:- protocol: precisa ser tcp ou udp.
- host-port: número da porta a ser aberta no host.
- guest-port: número da porta para a qual rotear dados no emulador.
redir del protocol:host-portExclui um redirecionamento de porta.- protocol: precisa ser tcp ou udp.
- host-port: número da porta a ser aberta no host.
Localização geográfica
Define a localização geográfica relatada para os apps em execução dentro de um emulador, enviando um ponto GPS para o emulador.
Você poderá emitir um dos seguintes comandos geo assim que um dispositivo virtual estiver
em execução. O emulador define o local que você insere criando um provedor de locais fictícios. Esse provedor responde aos listeners de localização definidos por apps e informa o local para o LocationManager. Qualquer app pode consultar o gerenciador de localização para
acessar o ponto GPS atual do dispositivo emulado chamando
LocationManager.getLastKnownLocation("gps").
geo fix longitude latitude [altitude] [satellites] [velocity]: envia um ponto GPS simples para o emulador. Especifique a longitude e a latitude em graus decimais. Use um número de 1 a 12 para especificar a quantidade de satélites a serem usados para determinar a posição e especifique a altitude em metros e a velocidade em nós.
geo nmea sentence: envia uma sentença NMEA 0183 para o dispositivo emulado como se ela tivesse sido enviada de um modem GPS emulado. Comece a frase com "$GP". No momento, só há suporte para as sentenças "$GPGGA" e "$GPRCM". O exemplo a seguir é uma sentença de Dados de Posição do Sistema de Posicionamento Global (GPGGA, na sigla em inglês) que recebe o horário, a posição e os dados de localização de um receptor 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
Eventos falsos de hardware
O subsistema de eventos de hardware do console do emulador permite simular praticamente qualquer interação física com o dispositivo. Isso inclui botões físicos, toque/gestos na tela, controles giratórios, entradas de joystick e chaves de hardware.
event types: lista todos os tipos de eventos falsos. Para eventos que têm códigos, o número de códigos é listado entre parênteses à direita. Exemplo de saída:
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 OKevent send types [types ...]: envia um ou mais tipos de eventos falsos.
Tipo de códigos de evento: lista os códigos de evento para o tipo de evento falso especificado.
event send type[:code]:[value] [...]: envia um ou mais eventos falsos com códigos e valores de código opcionais.
EV_KEY: referências de código de tecla
O tipo de evento EV_KEY é usado para simular pressionamentos e liberações de botões. As tabelas a seguir dividem a vasta lista de códigos de tecla compatíveis em categorias lógicas. Para cada código de tecla, o envio de um valor 1 simula uma ação de pressionar,
enquanto um valor 0 simula uma ação de soltar. Um valor de 2 representa a repetição
de tecla.
Subtabela A: chaves do sistema Android
| Código | Descrição |
|---|---|
KEY_HOME |
Gatilho do botão home |
KEY_BACK |
Acionador do botão "Voltar" |
KEY_MENU |
Botão de menu (flutuante) |
KEY_POWER |
Botão liga/desliga (pressionar/tocar e manter pressionado) |
KEY_VOLUMEUP |
Gatilho do botão Aumentar volume |
KEY_VOLUMEDOWN |
Acionador do botão Diminuir volume |
KEY_CAMERA |
Botão físico do obturador da câmera |
KEY_FOCUS |
Obturador de foco automático da câmera |
KEY_SEARCH |
Acionador do botão de pesquisa |
KEY_SLEEP |
Gatilho de comando de suspensão |
KEY_WAKEUP |
Gatilho do comando de ativação |
KEY_NOTIFICATION |
Abrir a gaveta de notificações |
KEY_MUTE |
Desativar a saída de áudio do sistema |
KEY_MICMUTE |
Desativar a entrada do microfone |
KEY_BRIGHTNESSDOWN |
Diminuir o brilho da tela |
KEY_BRIGHTNESSUP |
Aumentar o brilho da tela |
KEY_PHONE |
Abrir o app de discador padrão |
KEY_SEND |
Enviar ou iniciar uma ligação |
KEY_HEADSETHOOK |
Gancho do fone de ouvido (atender/desligar) |
KEY_SCREEN |
Comando de ativação do protetor de tela |
KEY_CONFIG |
Menu do sistema de configuração |
KEY_SWITCHVIDEOMODE |
Mudar o modo de vídeo do sistema |
KEY_KBDILLUMTOGGLE |
Ativar/desativar a luz de fundo do teclado |
Subtabela B: controles de mídia e reprodução
| Código | Descrição |
|---|---|
KEY_PLAYPAUSE |
Alternar o estado de reprodução e pausa |
KEY_PLAY |
Iniciar a reprodução de mídia |
KEY_PAUSECD |
Pausar a reprodução de CD |
KEY_STOPCD |
Parar a reprodução de CD |
KEY_NEXTSONG |
Pular para a próxima faixa |
KEY_PREVIOUSSONG |
Voltar para a faixa anterior |
KEY_REWIND |
Retroceder a faixa ativa |
KEY_FASTFORWARD |
Avançar a faixa ativa |
KEY_RECORD |
Comando de acionamento de gravação |
KEY_SHUFFLE |
Ativar/desativar a reprodução aleatória |
KEY_REPEAT |
Ativar/desativar a repetição da reprodução |
KEY_MEDIA |
Gatilho de tecla de mídia |
Subtabela C: navegação e teclados gerais
| Código | Descrição |
|---|---|
KEY_UP |
Direção do botão direcional para cima |
KEY_DOWN |
Direção do botão direcional para baixo |
KEY_LEFT |
Direção do botão direcional para a esquerda |
KEY_RIGHT |
Direção do botão direcional para a direita |
KEY_PAGEUP |
Navegação para cima |
KEY_PAGEDOWN |
Navegação para baixo na página |
KEY_INSERT |
Inserir um gatilho de tecla |
KEY_DELETE |
Excluir gatilho de tecla |
KEY_ENTER |
Acionador de tecla Enter |
KEY_ESC |
Gatilho da tecla Esc |
KEY_TAB |
Acionador da tecla Tab |
KEY_SPACE |
Acionador da tecla de espaço |
KEY_BACKSPACE |
Acionador da tecla Backspace |
KEY_CLEAR |
Limpar buffer de entrada |
KEY_CANCEL |
Cancelar ação ativa |
KEY_OK |
Confirmar/OK |
KEY_SELECT |
Selecionar acionador de item |
KEY_GOTO |
Ir para o local designado |
KEY_HELP |
Acessar o contexto da ajuda |
Subtabela D: alfanuméricos e símbolos do teclado numérico
- Letras padrão do alfabeto:
KEY_AaKEY_Z(26 códigos). - Teclas do teclado numérico:
KEY_1aKEY_0(10 códigos).
| Código | Símbolo de caractere |
|---|---|
KEY_COMMA |
, |
KEY_DOT |
. |
KEY_SLASH |
/ |
KEY_SEMICOLON |
; |
KEY_APOSTROPHE |
' |
KEY_GRAVE |
\` |
KEY_MINUS |
- |
KEY_EQUAL |
= |
KEY_LEFTBRACE |
[ |
KEY_RIGHTBRACE |
] |
KEY_BACKSLASH |
\ |
KEY_KPASTERISK |
* (teclado numérico) |
KEY_KPPLUS |
+ (teclado numérico) |
KEY_KPMINUS |
- (teclado numérico) |
KEY_KPDOT |
. (teclado numérico) |
KEY_KPSLASH |
/ (teclado numérico) |
KEY_KPENTER |
Enter (teclado numérico) |
KEY_KPEQUAL |
= (teclado numérico) |
KEY_KPCOMMA |
, (teclado numérico) |
KEY_KPJPCOMMA |
, (layout japonês) |
KEY_KPLEFTPAREN |
( (teclado numérico) |
KEY_KPRIGHTPAREN |
) (teclado numérico) |
KEY_KPPLUSMINUS |
± (teclado numérico) |
Subtabela E: teclas modificadoras e de função
- Teclas de função padrão:
KEY_F1aKEY_F24(24 códigos).
| Código | Descrição |
|---|---|
KEY_LEFTSHIFT |
Modificador de teclado Shift esquerdo |
KEY_RIGHTSHIFT |
Modificador de teclado Shift direito |
KEY_LEFTCTRL |
Modificador de teclado "Control" esquerdo |
KEY_RIGHTCTRL |
Modificador de teclado Control direito |
KEY_LEFTALT |
Modificador de teclado Alt esquerdo |
KEY_RIGHTALT |
Modificador de teclado Alt direito |
KEY_LEFTMETA |
Tecla Meta/Command esquerda |
KEY_RIGHTMETA |
Tecla Meta/Command direita |
KEY_CAPSLOCK |
Alternância do teclado Caps Lock |
KEY_NUMLOCK |
Alternância do teclado Num Lock |
KEY_SCROLLLOCK |
Alternância do teclado Scroll Lock |
KEY_COMPOSE |
Assistente de caracteres do Compose |
KEY_FN |
Tecla FN do teclado físico |
KEY_FN_ESC |
Combinações de teclas de função |
KEY_FN_1 |
Atalho de função especial 1 |
KEY_FN_2 |
Atalho para função especial 2 |
KEY_FN_D |
Atalho para função especial D |
KEY_FN_E |
Atalho de função especial E |
KEY_FN_F |
Atalho para função especial F |
KEY_FN_S |
Atalho de função especial S |
KEY_FN_B |
Atalho de função especial B |
Subtabela F: gamepads e joysticks
| Código | Descrição |
|---|---|
BTN_A / BTN_B / BTN_C |
Botões frontais A/B/C do controle |
BTN_X / BTN_Y / BTN_Z |
Botões frontais X/Y/Z do controlador |
BTN_START |
Botão do menu Iniciar do gamepad |
BTN_SELECT |
Botão "Selecionar" do gamepad |
BTN_MODE |
Chave do modo de controle |
BTN_TL / BTN_TR |
Botões de ombro esquerdo / direito |
BTN_TL2 / BTN_TR2 |
Gatilhos analógicos esquerdo / direito |
BTN_THUMBL / BTN_THUMBR |
Clique no botão analógico esquerdo / direito |
BTN_DPAD_UP |
Acionador do botão direcional para cima do gamepad |
BTN_DPAD_DOWN |
Gatilho de botão direcional para baixo do gamepad |
BTN_DPAD_LEFT |
Botão direcional esquerdo do gamepad |
BTN_DPAD_RIGHT |
Botão direcional direito do gamepad |
BTN_THUMB |
Acionador principal do joystick |
BTN_TOP / BTN_TOP2 |
Botões superiores do joystick |
BTN_PINKIE |
Botões do joystick acionados pelo dedo mindinho |
BTN_BASE a _BASE6 |
Botões da base da plataforma do joystick |
BTN_DEAD |
Flag de zona morta do gamepad inativa |
BTN_TRIGGER |
Gatilho manual do joystick físico |
BTN_JOYSTICK |
Código de entrada genérico do joystick |
Subtabela G: entradas de mouse, toque e stylus
| Código | Descrição |
|---|---|
BTN_MOUSE |
Evento genérico de ponteiro do mouse. |
BTN_LEFT |
Clique com o botão esquerdo do mouse |
BTN_RIGHT |
Clicar com o botão direito do mouse |
BTN_MIDDLE |
Clique com o botão do meio da roda de rolagem |
BTN_SIDE |
Acionador de tecla lateral de navegação |
BTN_EXTRA |
Gatilho de botão extra do mouse |
BTN_FORWARD |
Clique para avançar na navegação do navegador |
BTN_BACK |
Clique de navegação "voltar" do navegador |
BTN_TASK |
Tecla de seleção de tarefas do sistema |
BTN_TOUCH |
Contato físico com a tela detectado |
BTN_STYLUS |
Proximidade da caneta stylus ativa |
BTN_STYLUS2 |
Botão secundário no stylus |
BTN_TOOL_PEN |
Identificador da ferramenta de caneta stylus. |
BTN_TOOL_RUBBER |
Identificador da ferramenta de borracha da stylus. |
BTN_TOOL_BRUSH |
Identificador da ferramenta de pincel do pintor. |
BTN_TOOL_PENCIL |
Identificador da ferramenta de lápis de desenho |
BTN_TOOL_AIRBRUSH |
Identificador da ferramenta de pintura com aerógrafo. |
BTN_TOOL_FINGER |
Contato do dedo com a tela touchscreen |
BTN_TOOL_MOUSE |
Identificador de ferramenta de mouse externa. |
BTN_TOOL_LENS |
Ferramenta de lente de aumento óptico |
BTN_TOOL_DOUBLETAP |
Flag de velocidade do gesto de tocar duas vezes |
BTN_TOOL_TRIPLETAP |
Flag de velocidade de tocar três vezes com um gesto |
Subtabela H: atalhos de aplicativos
| Código | Ação de destino |
|---|---|
KEY_WWW |
Inicia o navegador da Web padrão. |
KEY_MAIL |
Abre o cliente de e-mail padrão |
KEY_BOOKMARKS |
Abre a lista de favoritos do navegador. |
KEY_CALC |
Abre a calculadora |
KEY_FILE |
Abre o explorador de arquivos locais. |
KEY_EDIT |
Gatilho de edição de documento |
KEY_NEW |
Documento: criar novo gatilho |
KEY_OPEN |
Acionador de abertura de documento |
KEY_SAVE |
Acionador de tarefa de salvamento de arquivo |
KEY_CLOSE |
Acionador de tarefa de fechamento de arquivo |
KEY_PRINT |
Acionador de tarefa de impressão de arquivo |
KEY_COPY |
Ação de copiar para o buffer da área de transferência |
KEY_PASTE |
Ação de inserção do buffer da área de transferência |
KEY_CUT |
Ação de corte do buffer da área de transferência |
KEY_UNDO |
Ação de desfazer do buffer da área de transferência |
KEY_REDO |
Refazer ação do buffer da área de transferência |
KEY_CANCEL |
Gatilho do processo de cancelamento do buffer |
KEY_FIND |
Utilitário de pesquisa de documentos |
KEY_REFRESH |
Utilitário de atualização de documentos |
KEY_EXIT |
Utilitário de fechamento de documentos |
KEY_DOCUMENTS |
Lançamento do portal de documentos do sistema |
KEY_HOMEPAGE |
Inicia o navegador da página inicial. |
KEY_FAVORITES |
Abre o portal de favoritos do navegador. |
KEY_CHAT |
Inicia o programa de mensagens instantâneas. |
KEY_EMAIL |
Gatilho de lançamento de e-mail alternativo |
KEY_FINANCE |
Abrir utilitário de ações/finanças |
KEY_SPORT |
Abrir o utilitário de acompanhamento de esportes |
KEY_SHOP |
Abrir portal de compras digital |
KEY_PLAYER |
Abrir o player de mídia principal |
KEY_MP3 |
Abra o MP3 player principal |
KEY_TEXT |
Abrir o editor de texto padrão |
KEY_LIST |
Abrir o utilitário de checklist |
KEY_MEMO |
Abrir o utilitário de bloco de notas / memorando |
KEY_CALENDAR |
Abre o portal de agenda / calendário |
KEY_DIRECTORY |
Abre o diretório de endereços do sistema |
KEY_COMPUTER |
Abre o explorador de especificações |
KEY_TV / KEY_TV2 |
Lançamento do portal de televisão |
KEY_RADIO |
Inicia o utilitário de rádio. |
KEY_CD / KEY_DVD |
Ativa o leitor de unidade óptica. |
KEY_AUDIO / KEY_VIDEO |
Acessa especificações de mídia. |
KEY_TUNER |
Configura receptores/sintonizadores. |
KEY_SAT / KEY_SAT2 |
Configura feeds de satélite. |
KEY_TAPE |
Tocar mídia de fita |
KEY_VCR |
Reproduzir feed do player de VCR |
KEY_VCR2 |
Reproduzir feed do player VCR 2 |
KEY_AUX |
Entradas de porta de mídia auxiliar |
KEY_SETUP |
Menu de configuração |
KEY_PROG1 a _PROG4 |
Chaves de programa definidas pelo usuário |
KEY_ZOOM |
Alternância de zoom na janela de visualização |
KEY_MODE |
Seleção do modo de janela de visualização |
KEY_KEYBOARD |
Mostrar/ocultar teclado virtual |
KEY_LANGUAGE |
Mudar o idioma da faixa de áudio |
KEY_TITLE |
Abrir opções de título de mídia |
KEY_SUBTITLE |
Ativar/desativar a interface de legendas |
KEY_ANGLE |
Mudar os ângulos da câmera de vídeo |
KEY_EPG |
Abrir o guia da programação eletrônica |
KEY_PVR |
Abrir o gravador de vídeo pessoal |
KEY_MHP |
Abrir plataforma de mídia doméstica |
KEY_CHANNEL |
Abrir canais do sintonizador de TV |
KEY_CHANNELUP |
Aumentar o canal de TV |
KEY_CHANNELDOWN |
Ajustar o canal de TV para baixo |
KEY_RED |
Botão interativo vermelho |
KEY_GREEN |
Botão interativo verde |
KEY_YELLOW |
Botão interativo amarelo |
KEY_BLUE |
Botão interativo azul |
KEY_FIRST |
Selecionar a primeira opção de item |
KEY_LAST |
Selecionar a opção "Último item" |
KEY_NEXT |
Selecionar a próxima opção de faixa |
KEY_PREVIOUS |
Selecionar a opção de faixa anterior |
KEY_RESTART |
Reiniciar o loop da faixa de mídia |
KEY_SLOW |
Opção de reprodução em câmera lenta |
KEY_AB |
Loop de repetição de sequência A-B |
KEY_PLAYCD |
Comando de reprodução do CD player |
KEY_PAUSECD |
Comando de pausa do CD |
KEY_STOPCD |
Comando de parada do CD |
KEY_DIGITS |
Comando de entrada do teclado digital |
KEY_TEEN |
Opção de valores para adolescentes no teclado numérico |
KEY_TWEN |
Opção de valores de twen do teclado |
KEY_DEL_EOL |
Excluir até o fim do buffer de linha |
KEY_DEL_EOS |
Excluir até o fim do buffer de tela |
KEY_INS_LINE |
Inserir novo buffer de linha |
KEY_BRL_DOT1 a _DOT8 |
Entradas de botões da linha braille |
KEY_VOICECOMMAND |
Inicia o app de assistente por voz |
KEY_SELECTIVE_SCREEN |
Aciona o corte de tela regional |
KEY_BATTERY |
Consulta notificações de bateria |
KEY_STAR / KEY_SHARP |
Símbolos do teclado de telefone |
KEY_PLUS |
Teclado de telefone com símbolo de mais |
KEY_INFO |
Mostrar sobreposição do painel de informações |
KEY_TIME |
Mostrar o horário atual |
KEY_VENDOR |
Consulta as especificações do fornecedor |
KEY_ARCHIVE |
Abre o utilitário de arquivamento local |
KEY_PROGRAM |
Configura parâmetros do programa |
KEY_POWER2 |
Aciona a energia de backup alternativa |
EV_ABS: eventos de movimento absoluto
O tipo de evento EV_ABS é crucial para simular toques precisos, gestos de arrastar e soltar, ações de pinça multitoque e ajustes de joystick. As coordenadas absolutas abaixo do mapa correspondem diretamente à resolução da tela física.
| Código | Intervalo de coordenadas | Descrição |
|---|---|---|
ABS_MT_TRACKING_ID |
-1 ou ≥0 |
ID de rastreamento; -1 encerra o toque |
ABS_MT_POSITION_X |
0 a 1767 |
Coordenada X (Pixel Fold) |
ABS_MT_POSITION_Y |
0 a 2207 |
Coordenada Y (Pixel Fold) |
ABS_MT_TOUCH_MAJOR |
pixels | Largura do eixo principal da área de toque |
ABS_MT_TOUCH_MINOR |
pixels | Largura do eixo menor da área de toque |
ABS_MT_WIDTH_MAJOR |
pixels | Largura do eixo principal da ferramenta |
ABS_MT_WIDTH_MINOR |
pixels | Largura do eixo secundário da ferramenta |
ABS_MT_ORIENTATION |
0 a 255 |
Ângulo de orientação do contato |
ABS_MT_PRESSURE |
0 a 255 |
Magnitude da força de contato |
ABS_MT_DISTANCE |
mm | Distância de passar o cursor da tela |
ABS_MT_TOOL_TYPE |
0 a 2 |
0=dedo, 1=caneta, 2=lápis |
ABS_MT_BLOB_ID |
integer | Identificador do blob de contato |
ABS_MT_TOOL_X |
pixels | Coordenada da posição X da ferramenta |
ABS_MT_TOOL_Y |
pixels | Coordenada da posição Y da ferramenta |
ABS_MT_SLOT |
0 a N |
Slot ativo (protocolo B) |
ABS_X / _Y / _Z |
analógico | Eixos de coordenadas do joystick |
ABS_RX / _RY / _RZ |
analógico | Eixos de rotação do joystick |
ABS_THROTTLE / _BRAKE |
analógico | Pedais e controles de direção |
ABS_HAT0X / _HAT0Y |
-1 / 0 / 1 |
Chapéu do botão direcional e interruptores de POV |
ABS_PRESSURE |
0 a 255 |
Nível de força da stylus / ponteiro |
ABS_DISTANCE |
mm | Distância de passar o cursor (caneta stylus) |
ABS_TILT_X / _TILT_Y |
graus | Ângulos de inclinação da stylus |
ABS_VOLUME |
analógico | Níveis de volume do controlador |
A interação por toque do Android é impulsionada por protocolos multitoque (MT). Os emuladores modernos implementam o Protocolo A (sem estado, enviando pacotes de contato separados por marcas de sincronização) e o Protocolo B (com estado, atribuindo contatos a slots de rastreamento dedicados). O protocolo B permite o acompanhamento eficiente de vários toques simultâneos para gestos como pinça para zoom.
EV_REL e EV_SW: movimento e interruptores de hardware
A categoria de evento EV_REL gerencia mudanças relativas de ponteiro ou coordenadas,
que são usadas principalmente para emular movimentos externos do mouse ou rolagem
de rodas. A categoria de evento EV_SW gerencia chaves de dispositivos físicos, como se um smartphone dobrável ou tablet está dobrado ou se um hardware de áudio externo está inserido.
| Código | Valores | Descrição |
|---|---|---|
REL_X |
Delta | Movimento horizontal do cursor |
REL_Y |
Delta | Movimento vertical do cursor |
SW_LID |
0/1 |
Status da tampa do laptop (0=Open, 1=Closed) |
SW_TABLET_MODE |
0/1 |
Status do modo tablet (0=Desativado, 1=Ativo) |
SW_HEADPHONE_INSERT |
0/1 |
Status da entrada para fone de ouvido (0=Out, 1=In) |
SW_MICROPHONE_INSERT |
0/1 |
Status da entrada para fone de ouvido do microfone (0=Out, 1=In) |
Sintaxe de envio de comandos
Para enviar esses códigos, formate o comando do console com tipos, códigos e valores separados por dois-pontos. É possível enfileirar várias mudanças de coordenadas em uma única string. É fundamental sempre adicionar uma marca de sincronização final
(EV_SYN:0:0) para indicar que o framework do emulador precisa agrupar e
processar essas entradas juntas.
Exemplos de gestos e programação de eventos
Como o Telnet permite enviar parâmetros de várias partes, é possível simular sequências de gestos físicos realistas. Confira abaixo as estruturas de script de evento bruto para automatizar gestos do console do host.
Simular um toque na tela
Para fazer um toque limpo na tela em uma coordenada de destino, atribua um ID de rastreamento, especifique as coordenadas X e Y na tela, simule o toque, sincronize e solte.
# 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
Como simular uma rolagem vertical (deslizar)
Para executar um gesto de deslizar para rolar, mantenha o contato pressionado na coordenada inicial, envie frames de coordenadas de movimento intermediário e solte no final.
# 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
Simular um gesto de pinça para aplicar zoom
Para acionar um zoom de dois dedos, use slots MT ativos (0 e 1) para rastrear e coordenar duas coordenadas de toque simultâneas que se afastam uma da outra.
# 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
Como simular uma troca de conexão de fones de ouvido
Simule inserções ou remoções de entrada para fone de ouvido para testar as chaves de roteamento de áudio. Um valor de 1 representa a inserção do conector, e 0 é a remoção do fone de ouvido.
# 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
Descobrindo códigos de eventos do console em um dispositivo real
Para descobrir a sequência exata de sintaxe de evento para qualquer ação personalizada ou gesto de
botão, conecte-se via adb shell e execute o utilitário de diagnóstico getevent. À medida que você
interage com a GUI do emulador, o console imprime os códigos, tipos
e posições exatos dos eventos.
# 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
- Mensagem de texto do evento: envia uma string de caracteres que simulam pressionamentos de tecla. A mensagem precisa ser uma string UTF-8. As postagens Unicode são mapeadas de maneira reversa de acordo com o teclado do dispositivo atual, e os caracteres sem suporte são descartados silenciosamente.
Controles de estado de energia
power display: mostra o estado da bateria e do carregador.
power ac {on| off}: define o estado de carregamento CA como ativado ou desativado.
power status {unknown| charging| discharging| not-charging| full}: muda o status da bateria conforme especificado.
power present {true| false}: define o estado de presença da bateria.
power health {unknown| good| overheat| dead| overvoltage| failure}: define o estado de integridade da bateria.
power capacity percent: define o estado da capacidade da bateria restante como uma porcentagem de 0 a 100.
Status da conexão de rede (somente Ethernet e celular)
status da rede: verifica o status da rede e as características atuais de atraso e velocidade.
network delay latencyModifica a latência da rede emulada.O emulador permite simular vários níveis de latência de rede para que você possa testar o app em um ambiente mais próximo de condições reais de execução. Você pode definir um nível de latência ou um intervalo na inicialização do emulador ou usar o console para mudar a latência enquanto o app está sendo executado no emulador.
O formato de latência de rede é um dos seguintes (os números estão em milissegundos):
Formato de latência de rede:
gprs: GPRS, que usa um intervalo de latência de no mínimo 150 e no máximo 550.
edge: EDGE/EGPRS, que usa um intervalo de latência de no mínimo 80 e no máximo 400.
umts: UMTS/3G, que usa um intervalo de latência de no mínimo 35 e no máximo 200.
none: sem latência.
num: emula a latência especificada em milissegundos.
min:max: emula o intervalo de latência especificado.
Para definir a latência na inicialização, use a opção de emulador
-netdelaycom um valor de latência compatível. Exemplos:emulator -netdelay gprs emulator -netdelay 40,100Para fazer mudanças no atraso da rede enquanto o emulador está em execução, conecte-se ao console e use o comando
network delay:network delay gprs network delay 40 100network speed speedO emulador permite simular várias taxas de transferência de rede. Você pode definir uma taxa de transferência ou um intervalo na inicialização do emulador ou usar o console para mudar a taxa enquanto o app está sendo executado no emulador.O formato da velocidade da rede é um dos seguintes (os números estão em kilobits/s):
Formato de velocidade da rede:
gsm: GSM/CSD, que usa uma velocidade de 14,4 de upload e 14,4 de download.
hscsd: HSCSD, que usa uma velocidade de 14,4 de upload e 43,2 de download.
gprs: GPRS, que usa uma velocidade de 40,0 de upload e 80,0 de download.
edge: EDGE/EGPRS, que usa uma velocidade de 118,4 de upload e 236,8 de download.
umts: UMTS/3G, que usa uma velocidade de 128,0 de upload e 1.920 de download.
hsdpa: HSDPA, que usa uma velocidade de 348 de upload e 14.400 de download.
lte: LTE, que usa uma velocidade de 58.000 de upload e 173.000 de download.
evdo: EVDO, que usa uma velocidade de 75.000 de upload e 280.000 de download.
full: velocidade ilimitada, mas depende da velocidade de conexão do seu computador.
num: define uma taxa exata em kilobits/s usada para upload e download.
up:down: define taxas exatas em kilobits/s para upload e download separadamente.
Para definir a velocidade da rede na inicialização do emulador, use a opção de emulador
-netspeed. Exemplos:emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26Para fazer mudanças na velocidade da rede enquanto o emulador está em execução, conecte-se ao console e use o comando
network speed:network speed 14.4 80network capture {start| stop} fileEnvia pacotes para um arquivo. A lista a seguir descreve os parâmetros e valores relacionados:Observação:a partir do Android Emulator 36.5 e versões mais recentes, o tráfego de conexão Wi-Fi é processado pelo netsim por padrão. O comando do console de captura de rede captura apenas o tráfego celular/WAN legado roteado pela pilha slirp do QEMU. Para capturar pacotes de rede Wi-Fi, Bluetooth ou avançados em versões modernas do emulador, consulte Capturar tráfego de rede no guia de rede avançada do emulador.
start file: começa a capturar pacotes de rede. Por segurança, o arquivo precisa ser um nome de arquivo simples (sem separadores de caminho, como
/, e sem..). O arquivo de captura de pacote será salvo no diretório de conteúdo do AVD, na pastaconsole_out/(por exemplo,~/.android/avd/avd_name.avd/console_out/file).stop file: para de enviar pacotes para o arquivo especificado.
Emulação de telefonia
O emulador Android inclui os próprios modems emulados GSM e CDMA que permitem simular funções de telefonia. Por exemplo, com o GSM, é possível simular chamadas de entrada, além de estabelecer e encerrar conexões de dados. Com o CDMA, você informa uma fonte de assinatura e a lista de roaming preferencial. O sistema Android processa ligações simuladas exatamente como faria com as reais. O emulador não tem suporte a áudio de ligações.
gsm {call| accept| cancel| busy} phonenumberOs parâmetros gsm são os seguintes:- call: simula uma ligação recebida de um número de telefone.
- accept: aceita uma chamada recebida de um número de telefone e muda o estado da chamada para ativo. Você só pode mudar o estado de uma chamada para "ativa" quando o estado atual é "em espera" ou "em espera".
- cancel: encerra uma ligação recebida de ou realizada para phonenumber.
- busy: encerra uma chamada de saída para um número de telefone e muda o estado da chamada para ocupado. Você só pode mudar o estado de uma chamada para ocupado quando o estado atual é aguardando.
gsm {data| voice} stateO comando de estado de dados muda o estado da conexão de dados GPRS, e o comando de estado de voz muda o estado da conexão de voz GPRS, da seguinte maneira:- unregistered: nenhuma rede disponível
- home: em rede local, sem roaming
- roaming: em rede com roaming
- searching: pesquisando redes
- denied: somente chamadas de emergência
- off: igual a "unregistered".
- on: igual a "home".
gsm hold: muda o estado de uma chamada para em espera. Você só pode mudar o estado de uma chamada para espera quando o estado atual é ativo ou aguardando.
gsm list: lista todas as chamadas de entrada e de saída e os estados delas.
gsm status: informa o estado atual de voz/dados GSM. Os valores são aqueles descritos para os comandos de voz e dados.
gsm signal {rssi| ber}Muda a intensidade do sinal relatado (rssi) e a taxa de erros de bit (ber) nos próximos 15 segundos de atualização. A lista a seguir descreve os parâmetros e valores relacionados:- rssi: o intervalo é de 0 a 31 e 99 para desconhecido.
- ber: o intervalo é de 0 a 7, e 99 para desconhecido.
gsm signal-profile num: define o perfil da intensidade do sinal. "num" é um número de 0 a 4.
cdma ssource sourceDefine a origem da assinatura CDMA atual, em que "source" é uma lista de permissões baseada em rede que contém os assinantes da operadora CDMA e os valores correspondentes, da seguinte maneira:- nv: lê a assinatura da RAM não volátil.
- ruim: lê a assinatura do Removable User Identity Module (R-UIM).
cdma prl_version version: despeja a versão atual da lista de roaming preferencial (PRL). O número da versão se destina ao banco de dados da PRL que contém informações usadas durante o processo de seleção e aquisição do sistema.
Gerenciar sensores no emulador
Esses comandos se referem aos sensores que estão disponíveis no AVD. Além de usar o comando de sensor, você pode consultar e ajustar as configurações no emulador na tela "Sensores virtuais", nas guias "Acelerômetro" e "Sensores adicionais".
sensor status: lista todos os sensores e os status deles.
sensor get sensor-name: acessa as configurações de sensor-name. O exemplo a seguir acessa o valor do sensor de aceleração:
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348Os valores de aceleração separados por dois pontos(:) referem-se às coordenadas x, y e z dos sensores virtuais.
sensor set sensor-name value-x:value-y:value-z: define os valores para sensor-name. O exemplo a seguir define o sensor de aceleração com os valores de x, y e z separados por dois pontos.
sensor set acceleration 2.23517e-07:9.77631:0.812348
Emulação de SMS
sms send sender-phone-number textmessageGera um SMS recebido emulado. A lista a seguir descreve os parâmetros e valores relacionados:- sender-phone-number: contém uma string numérica arbitrária.
- textmessage: é a mensagem SMS.
O exemplo a seguir envia a mensagem "olá" para o número de telefone 4085555555:
sms send 4085555555 hi there
O console encaminha a mensagem SMS para o framework do Android, que a transmite para um app no emulador que processa SMS, como o app Mensagens. Se você transmitir 10 números, eles vão ser formatados pelo app como um número de telefone. Sequências numéricas mais longas ou mais curtas são exibidas da maneira como você as envia.
Simulação de impressão digital
finger touch fingerprint-id: simula um dedo tocando o sensor.
finger remove: simula um dedo deixando o sensor.
Para instruções sobre como usar esses comandos, consulte a seção a seguir sobre simulação e validação de impressão digital.
Gravador de tela
O comando de gravação de tela permite capturar arquivos de vídeo de alta qualidade da tela física do emulador diretamente do sistema host. Isso é muito útil para pipelines de integração contínua e relatórios de bugs automatizados.
screenrecord {start| stop} fileInicia ou interrompe o processo de gravação da tela.- start file: inicia a gravação de vídeo. O arquivo de saída precisa terminar com
a extensão obrigatória
.webm. O vídeo capturado é salvo diretamente no diretório de saída do console do AVD:~/.android/avd/avd_name.avd/console_out/file. - stop file: interrompe o processo de gravação de tela ativo.
- start file: inicia a gravação de vídeo. O arquivo de saída precisa terminar com
a extensão obrigatória
Automação e macro
O subsistema de automação permite que os desenvolvedores gravem transições de estado de macro no dispositivo virtual em execução e as reproduzam para executar fluxos de teste automatizados.
automation {record| stop-record| play| stop-play}Gerencia gravações de macros automatizadas.- record: inicia a gravação de mudanças de estado e entradas do dispositivo.
- stop-record: interrompe a sessão de gravação de macro atual.
- play: inicia a reprodução de uma sequência de macro gravada.
- stop-play: interrompe a sequência de reprodução de macro ativa.
Física (6DoF)
Os comandos de física gerenciam a verdade fundamental de registro de posturas espaciais para modelos de movimento físico de seis graus de liberdade (6DoF), que são usados para simular o rastreamento avançado de movimento.
physics {record-gt| stop}Gerencia gravações de modelos de postura física.- record-gt: começa a gravar dados de movimento 6DoF de verdade absoluta.
- stop: interrompe o processo de gravação da verdade fundamental atual.
Controles avançados de dispositivos
Esta seção agrega endpoints de comando do console altamente especializados para configurações avançadas de emulação, incluindo proxies de rede, configurações de vários monitores, substituições de renderização e depuração direta do hipervisor.
multidisplay {add| del}Adiciona ou exclui monitores virtuais secundários para testar configurações de várias telas. Observação:monitores secundários não são compatíveis com perfis de dobra, como o Pixel Fold ou o emulador redimensionável.proxy {set| clear}Configura o encaminhamento de proxy de rede de forma programática no console.- set host port: Configura as configurações de proxy de destino.
- clear: redefine as configurações de proxy para o padrão. Observação:as operações de definição de proxy falham em ambientes de execução sem interface gráfica.
virtualscene-image {wall| table} image_pathPersonaliza as paredes de fundo ou as mesas horizontais mostradas na transmissão da câmera de cena virtual com um arquivo de imagem do usuário personalizado.resize-display scaleAjusta dinamicamente a resolução da tela entre escalas predefinidas. Observação:os ajustes de resolução não são compatíveis com configurações headless.nodraw {on| off}Desativa a renderização física da GUI na tela do host para reduzir a memória do sistema e a carga da GPU durante execuções de automação sem interface gráfica em segundo plano de alto volume.grpc portConfigura o controle programático avançado de dispositivos em endpoints de porta gRPC personalizados.qemu monitorFornece acesso direto ao terminal interativo do console do hipervisor subjacente. Esse comando só pode ser inserido em sessões ativas do console Telnet.icebox track pidAtiva snapshots automáticos do sistema quando o processo do app especificado passa por uma exceção ou falha não processada.phonenumber numberDefine o número de telefone local virtual do dispositivo de destino.
Interface programática do gRPC
As versões modernas do emulador oferecem suporte a uma interface programática gRPC avançada além do console Telnet legado. Embora o console Telnet seja ótimo para sessões interativas rápidas ou scripts simples, a interface gRPC foi projetada para controle automatizado de alto desempenho, seguro e robusto em ambientes de integração contínua (CI) e sem interface gráfica. Ao oferecer endpoints de serviço diretos, o gRPC elimina a necessidade de analisar fluxos de texto, gerenciar handshakes de sessão de terminal ou expor portas de localhost não criptografadas.
Para ajudar a escolher entre o console Telnet legado e a interface programática gRPC moderna, confira a comparação a seguir de desempenho, segurança e recursos:
| Recurso | Console Telnet | Interface gRPC |
|---|---|---|
| Ideal para | Depuração manual, sessões interativas. | CI/CD sem interface gráfica, plataformas de teste automatizadas pesadas. |
| Velocidade | Mais lento: sobrecarga de texto, latência de conexão. | HTTP/2 otimizado e multiplexado, proto rápido. |
| Segurança | Não criptografado; portas locais (5554–5585). | Pode ser protegido por TLS e funciona em redes. |
| Streams | Não compatível; apenas solicitação-resposta. | Streams para logcat, captura de áudio do visitante. |
| Mídia | Grava arquivos de saída no disco do host/convidado. | Buffers binários diretos por fio. |
| SO convidado | Restrito a comandos fixos do emulador. | Executa comandos nativos do shell bash do convidado. |
Como iniciar e chamar o gRPC
Para usar os endpoints gRPC, inicie o Android Emulator na linha de comando e inclua a flag -grpc, especificando a porta de loopback de destino.
# Start the emulator with the gRPC service enabled on port 8556
emulator -grpc localhost:8556 @Pixel_Fold
Depois que o emulador estiver em execução com o serviço gRPC ativado, você poderá fazer chamadas de RPC programáticas. Para testes de linha de comando, use o utilitário grpcurl para
se comunicar com os serviços do emulador. Todas as solicitações são formatadas em JSON e
enviadas em texto simples.
# 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
Mapeamento do console Telnet para o serviço gRPC
A tabela de referência a seguir mapeia os comandos legados do console Telnet para os serviços e métodos gRPC correspondentes, indicando como automatizar interações comuns de dispositivos virtuais de maneira programática:
| Categoria | Comando Telnet legado | Serviço / método gRPC |
|---|---|---|
| Status | ping |
EmulatorController/getStatus |
| Status | avd name |
incubating.AvdService/getAvdInfo |
| Status | kill |
EmulatorController/setVmState |
| Status | restart |
EmulatorController/setVmState |
| Alimentação | power display |
EmulatorController/getBattery |
| Alimentação | power capacity |
EmulatorController/setBattery |
| Localização geográfica | geo fix |
EmulatorController/setGps |
| Sensores | sensor set |
incubating.SensorService/setSensor |
| Biometria | finger touch |
EmulatorController/sendFingerprint |
| Postura | posture |
EmulatorController/setPosture |
| Postura | physics / fold |
EmulatorController/setPhysicalModel |
| SMS | sms send |
EmulatorController/sendSms |
| Chamada GSM | gsm call |
EmulatorController/sendPhone |
| Chamada GSM | phonenumber |
EmulatorController/setPhoneNumber |
| Redirecionar | redir add |
Waterfall/ForwardPort |
| Entrada | event send EV_KEY |
EmulatorController/sendKey |
| Entrada | event send EV_ABS |
EmulatorController/sendTouch |
| Mídia | screenrecord |
incubating.ScreenRecording |
| Renderização | nodraw |
EmulatorController/setDisplayMode |
| Snapshots | avd snapshot list |
SnapshotService/ListSnapshots |
| Snapshots | avd snapshot load/save |
SnapshotService/LoadSnapshot |
Comandos programáticos exclusivos do gRPC
A interface gRPC oferece vários recursos de ponta que são fisicamente impossíveis de executar em conexões legadas do console Telnet. Isso inclui streaming direto de logcat, captura ou injeção de áudio bidirecional, modificações na GUI do host e acesso direto ao shell.
| Serviço / método gRPC | Parâmetro | Capacidade |
|---|---|---|
streamLogcat |
{"maxLines": 100} |
Transmite as saídas do logcat do sistema convidado |
streamAudio |
{} |
Transmite o áudio do alto-falante pelo fio |
injectAudio |
{"audio": "..."} |
Insere streams de áudio do microfone. |
UiController |
{"theme": "DARK"} |
Modifica temas de janela da janela do host. |
Waterfall/Exec |
{"cmd": "ls"} |
Executa comandos nativos do shell do SO convidado |
Simulação e validação de impressão digital
Use o comando "finger" para simular e validar a autenticação de impressão digital para seu app. Você precisa das Ferramentas do SDK 24.3 ou mais recente e do Android 6.0 (nível da API 23) ou mais recente.
Para simular e validar a autenticação de impressão digital, siga estas etapas:
Se você ainda não tem um ID de impressão digital, cadastre uma nova impressão digital no emulador selecionando Configurações > Segurança > Impressão digital e seguindo as instruções de cadastro.
Configure seu app para aceitar a autenticação por impressão digital. Quando essa configuração é concluída, o dispositivo exibe a tela de autenticação de impressão digital.
Enquanto o app estiver exibindo a tela de autenticação de impressão digital, vá para o console e insira o comando
finger touche o ID de impressão digital que você criou. Isso simula um toque do dedo.Em seguida, insira o comando
finger removepara simular a elevação do dedo. Seu app deve responder como se o usuário tivesse tocado e elevado o dedo do sensor de impressão digital.