Ir al contenido

Comandos del emulador

Referencia de los comandos `elyra emulator` para listar, conectar, operar y cerrar un dispositivo emulado.

Ver Markdown

La familia elyra emulator es la superficie de línea de comandos del dispositivo emulado: inventario, conexión, interacción, ciclo de vida y los verbos exclusivos de Android. Corresponde a lo que hacen la pestaña Emulador y la tarjeta de teléfono del Canvas.

Uso

Janela do terminal
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]

Qué hace cada comando

Comando Qué hace
list / devices Inventario: sesiones en ejecución / todos los dispositivos y AVD de la máquina.
attach Inicia el auxiliar del dispositivo y lo vuelve activo para el workspace.
tap / type / gesture Entrada: un toque, texto, o una secuencia de gesto con varios puntos.
button / rotate Botón de hardware (como home o back) y giro de pantalla.
exec Pasa un comando bruto al dispositivo.
kill / shutdown Cierra el auxiliar / cierra el auxiliar y apaga el dispositivo.
install / launch / permissions Android: instala un APK, inicia una app por paquete, ajusta permisos de runtime.
ax / logcat Android: vuelca el árbol de accesibilidad y captura un fragmento de logcat.

Flags compartidos

  • --device <id> — el objetivo explícito: en Android un serial de adb (por ejemplo emulator-5554) o el nombre de un AVD; en iOS el UDID o el nombre del Simulator.
  • --node <id|title> — el objetivo a través de la tarjeta de teléfono del Canvas, que guarda el id del dispositivo. --device y --node son mutuamente excluyentes: pasar los dos es rechazado. list y devices no aceptan --node, porque inventarían la máquina, no una tarjeta.
  • Sin ninguno de los dos, el comando actúa sobre el dispositivo activo del workspace actual.
  • --workspace <selector> — alcanza otro workspace y su dispositivo activo.
  • --focus — existe solo en attach: es el único punto donde Elyra trae la pestaña al frente.
  • --json — salida estructurada.

Notas por comando

  • attach sin objetivo resuelto es rechazado a menos que un workspace resuelva. Un --device explícito puede iniciar el auxiliar sin workspace, pero no crea una sesión activa allí — los comandos siguientes sin objetivo fallan con emulator_no_active.
  • tap usa coordenadas normalizadas 0..1, con origen en la esquina superior izquierda; fuera de ese rango es rechazado.
  • type acepta solo US ASCII, y el texto con espacio debe ir entre comillas — sin ellas cada palabra se vuelve un argumento suelto y el comando es rechazado.
  • gesture recibe JSON con 2 a 64 puntos, cada uno {"type":"begin|move|end","x":0..1,"y":0..1} y un "edge" opcional de 0 a 4. En Android se vuelve un arrastre recto entre el primer y el último punto.
  • button acepta nombres de botón de hardware — un nombre desconocido es rechazado por su nombre — y rotate acepta portrait, portrait_upside_down, landscape_left o landscape_right.
  • exec es un passthrough bruto al dispositivo y puede cambiar el estado del simulador. En Android ejecuta la cadena en el shell del dispositivo y devuelve solo el stdout.
  • kill y shutdown no son sinónimos. kill cierra el auxiliar de Elyra y libera la sesión, dejando el dispositivo encendido. shutdown cierra el auxiliar y apaga el dispositivo del simulador — úselo solo en un dispositivo que Elyra inició, porque apaga su propio emulador con la misma facilidad.
  • install recibe la ruta de un APK y --reinstall para reemplazar una instalación existente; launch recibe el paquete y, opcionalmente, --activity <name>.
  • permissions usa el orden <grant|revoke> <package> <permission>; reset no recibe paquete ni permiso y elimina todas las concesiones de runtime que usted dio.
  • logcat acepta --lines <n> y --filters <filterspec>, repetible una vez por tag. Cada valor es TAG:PRIORITY, con prioridad entre V D I W E F S y * como tag comodín. Un tag que empiece con - es rechazado por su nombre, porque logcat lo leería como una opción.

Límites y valores predeterminados

  • install, launch, permissions, ax y logcat son exclusivos de Android. En un Simulator son rechazados con emulator_unsupported. Los demás comandos valen en las dos plataformas.
  • attach espera hasta 180 s, por el arranque de un AVD apagado; los otros comandos esperan hasta 60 s. Eso es el tiempo que Elyra espera, no el tiempo que tarda el dispositivo: un timeout significa que dejó de observar, no que el trabajo se deshizo.
  • Un AVD que Elyra enciende por su cuenta corre headless: la imagen es la pestaña de Elyra, no una ventana separada.
  • No hay captura de pantalla en esta familia, en ninguna plataforma. En Android, lo que se lee de vuelta es el árbol de accesibilidad; en iOS ese verbo es rechazado. Tampoco hay verbo para desinstalar una app ni para copiar un archivo del dispositivo.
  • Una lista vacía no es lo mismo que un backend roto. Las respuestas de inventario traen los backends que fallaron junto a los resultados, en vez de encoger la lista en silencio. Los conteos, tiempos y mensajes pueden cambiar entre releases.

Errores y recuperación

Error Qué hacer
emulator_no_active Ningún dispositivo activo en el workspace: conecte uno en el panel del dispositivo, o pase --device / --node.
emulator_device_not_found El id no existe en esta máquina: ejecute elyra emulator devices --json y use el id listado.
emulator_unsupported / emulator_not_macos El verbo es exclusivo de Android y el objetivo es un Simulator, o se pidió el camino de iOS fuera de macOS: cambie de dispositivo o use Android.
emulator_helper_failed El auxiliar no arrancó: relea el mensaje, revise la cadena de herramientas e intente attach de nuevo.
emulator_error Error no clasificado. El mensaje original viene con él, sin traducir, para que usted pueda buscarlo.

Próximos pasos