Comandos do emulador
Referência dos comandos `elyra emulator` para listar, conectar, operar e encerrar um aparelho emulado.
A família elyra emulator é a superfície de linha de comando do aparelho emulado: inventário,
conexão, interação, ciclo de vida e os verbos exclusivos do Android. Ela corresponde ao que a aba
Emulador e o cartão de celular do Canvas fazem.
Uso
elyra emulator list [--workspace <selector>] [--json]elyra emulator devices [--workspace <selector>] [--json]elyra emulator attach [device] [--device <id>|--node <id|title>] [--workspace <selector>] [--focus] [--json]elyra emulator tap <x> <y> [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator type "<text>" [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator gesture '<json>' [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator button <name> [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator rotate <portrait|portrait_upside_down|landscape_left|landscape_right> [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator exec --command <cmd> [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator kill [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator shutdown [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator install <path> [--reinstall] [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator launch <package> [--activity <name>] [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator permissions <grant|revoke> <package> <permission> [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator permissions reset [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator ax [--device <id>|--node <id|title>] [--workspace <selector>] [--json]elyra emulator logcat [--lines <n>] [--filters <filterspec>]... [--device <id>|--node <id|title>] [--workspace <selector>] [--json]O que cada comando faz
| Comando | O que faz |
|---|---|
list / devices |
Inventário: sessões em execução / todos os dispositivos e AVDs da máquina. |
attach |
Inicia o auxiliar do dispositivo e o torna ativo para o workspace. |
tap / type / gesture |
Entrada: um toque, texto, ou uma sequência de gesto com vários pontos. |
button / rotate |
Botão de hardware (como home ou back) e giro da tela. |
exec |
Passa um comando bruto para o dispositivo. |
kill / shutdown |
Encerra o auxiliar / encerra o auxiliar e desliga o dispositivo. |
install / launch / permissions |
Android: instala APK, inicia app por pacote, ajusta permissões de runtime. |
ax / logcat |
Android: despeja a árvore de acessibilidade e captura um recorte do logcat. |
Flags compartilhadas
--device <id>— o alvo explícito: no Android um serial doadb(por exemploemulator-5554) ou o nome de um AVD; no iOS o UDID ou o nome do Simulator.--node <id|title>— o alvo pelo cartão de celular do Canvas, que guarda o id do dispositivo.--devicee--nodesão mutuamente exclusivos: passar os dois é recusado.listedevicesnão aceitam--node, porque inventariam a máquina, não um cartão.- Sem nenhum dos dois, o comando age sobre o dispositivo ativo do workspace atual.
--workspace <selector>— alcança outro workspace e o dispositivo ativo dele.--focus— existe somente emattach: é o único ponto em que o Elyra traz a aba para a frente.--json— saída estruturada.
Notas por comando
attachsem alvo resolvido é recusado a menos que um workspace resolva. Um--deviceexplícito pode iniciar o auxiliar sem workspace, mas não cria sessão ativa ali — os comandos seguintes sem alvo falham comemulator_no_active.tapusa coordenadas normalizadas0..1, origem no canto superior esquerdo; fora da faixa é recusado.typeaceita apenas US ASCII, e texto com espaço precisa estar entre aspas — sem elas cada palavra vira um argumento solto e o comando é recusado.gesturerecebe JSON com 2 a 64 pontos, cada um{"type":"begin|move|end","x":0..1,"y":0..1}e um"edge"opcional de 0 a 4. No Android ele vira um arrasto reto entre o primeiro e o último ponto.buttonaceita nomes de botão de hardware — um nome desconhecido é recusado pelo nome — erotateaceitaportrait,portrait_upside_down,landscape_leftoulandscape_right.execé passthrough bruto para o dispositivo e pode alterar o estado do simulador. No Android ele roda a string no shell do dispositivo e devolve apenas o stdout.killeshutdownnão são sinônimos.killencerra o auxiliar do Elyra e libera a sessão, deixando o dispositivo ligado.shutdownencerra o auxiliar e desliga o dispositivo do simulador — use-o apenas num aparelho que o Elyra iniciou, porque ele desliga o seu emulador com a mesma facilidade.installrecebe o caminho de um APK e--reinstallpara substituir uma instalação existente;launchrecebe o pacote e, opcionalmente,--activity <name>.permissionsusa a ordem<grant|revoke> <package> <permission>;resetnão recebe pacote nem permissão e remove todas as concessões de runtime que você deu.logcataceita--lines <n>e--filters <filterspec>, repetível uma vez por tag. Cada valor éTAG:PRIORIDADE, com prioridade entreV D I W E F Se*como tag curinga. Uma tag que comece com-é recusada pelo nome, porque o logcat a leria como opção.
Limites e padrões
install,launch,permissions,axelogcatsão exclusivos do Android. Num Simulator eles são recusados comemulator_unsupported. Os demais comandos valem nas duas plataformas.- O
attachespera até 180 s, por causa do boot de um AVD desligado; os outros comandos esperam até 60 s. Isso é o tempo que o Elyra espera, não o tempo que o dispositivo leva: um timeout significa que ele parou de acompanhar, não que o trabalho foi desfeito. - Um AVD que o Elyra liga sozinho roda headless: a imagem é a aba do Elyra, não uma janela separada.
- Não existe captura de tela nesta família, em nenhuma plataforma. No Android, o que se lê de volta é a árvore de acessibilidade; no iOS esse verbo é recusado. Também não há verbo para desinstalar um app nem para copiar um arquivo do dispositivo.
- Uma lista vazia não é a mesma coisa que um backend quebrado. As respostas de inventário trazem os backends que falharam ao lado dos resultados, em vez de encolher a lista em silêncio. Contagens, tempos e mensagens podem mudar entre releases.
Erros e recuperação
| Erro | O que fazer |
|---|---|
emulator_no_active |
Nenhum dispositivo ativo no workspace: conecte um no painel do aparelho, ou passe --device / --node. |
emulator_device_not_found |
O id não existe nesta máquina: rode elyra emulator devices --json e use o id listado. |
emulator_unsupported / emulator_not_macos |
O verbo é exclusivo do Android e o alvo é um Simulator, ou o caminho de iOS foi pedido fora do macOS: troque de dispositivo ou use Android. |
emulator_helper_failed |
O auxiliar não subiu: releia a mensagem, confira a toolchain e tente o attach de novo. |
emulator_error |
Erro não classificado. A mensagem original vem junto, sem tradução, para você poder pesquisar. |