---
id: "sistema.emulador-cli"
titulo: "Comandos del emulador"
resumo: "Referencia de los comandos `elyra emulator` para listar, conectar, operar y cerrar un dispositivo emulado."
idioma: "es"
tipo: "referencia"
categoria: "ambientes"
aplicavelDesde: "0.0.16"
capabilities: ["devices.emulator.discovery", "devices.emulator.interact", "devices.emulator.lifecycle", "devices.android.apps", "devices.android.diagnostics"]
estadoEditorial: "aprovado"
nivelEvidencia: "artefato-distribuido"
refFonte: "27574c339b58316408f6be2d62169d59041d07bf"
revisaoFonte: "2026-09-24"
revisor: "mantenedor (v1, 2026-10-03)"
rota: "/docs/es/sistema/emulador-cli/"
fonte: "pt-br/sistema/emulador-cli.md"
caminhoPublico: "docs/publica/es/sistema/emulador-cli.md"
hashFonte: "sha256:881d89ef9323d56fbb0e1a13c02e3be54ff4d5ca161d957d9b3d098dca643884"
hashDestaPagina: "sha256:ffb6a6433000b1c517052fc98ef62334920ab1960bcc0300ca1ce7ff85a31ee3"
traducaoAssistidaPorIA: true
traducaoDesatualizada: false
corpoRetido: false
---
<!-- traducao-assistida-por-ia: idioma=ES fonte=pt-br/sistema/emulador-cli.md fonteHash=sha256:881d89ef9323d56fbb0e1a13c02e3be54ff4d5ca161d957d9b3d098dca643884 estado=atual -->

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

```bash
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

- [Emulador móvil](/docs/es/sistema/emulador/)
- [Interactuar con el dispositivo emulado](/docs/es/sistema/emulador-interacao/)
- [Instalar, iniciar y leer una app en el Android emulado](/docs/es/sistema/emulador-android/)
