Comandos del emulador
Referencia de los comandos `elyra emulator` para listar, conectar, operar y cerrar un dispositivo emulado.
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
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 deadb(por ejemploemulator-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.--devicey--nodeson mutuamente excluyentes: pasar los dos es rechazado.listydevicesno 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 enattach: es el único punto donde Elyra trae la pestaña al frente.--json— salida estructurada.
Notas por comando
attachsin objetivo resuelto es rechazado a menos que un workspace resuelva. Un--deviceexplícito puede iniciar el auxiliar sin workspace, pero no crea una sesión activa allí — los comandos siguientes sin objetivo fallan conemulator_no_active.tapusa coordenadas normalizadas0..1, con origen en la esquina superior izquierda; fuera de ese rango es rechazado.typeacepta 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.gesturerecibe 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.buttonacepta nombres de botón de hardware — un nombre desconocido es rechazado por su nombre — yrotateaceptaportrait,portrait_upside_down,landscape_leftolandscape_right.execes 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.killyshutdownno son sinónimos.killcierra el auxiliar de Elyra y libera la sesión, dejando el dispositivo encendido.shutdowncierra 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.installrecibe la ruta de un APK y--reinstallpara reemplazar una instalación existente;launchrecibe el paquete y, opcionalmente,--activity <name>.permissionsusa el orden<grant|revoke> <package> <permission>;resetno recibe paquete ni permiso y elimina todas las concesiones de runtime que usted dio.logcatacepta--lines <n>y--filters <filterspec>, repetible una vez por tag. Cada valor esTAG:PRIORITY, con prioridad entreV D I W E F Sy*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,axylogcatson exclusivos de Android. En un Simulator son rechazados conemulator_unsupported. Los demás comandos valen en las dos plataformas.attachespera 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. |