Cómo iniciar el emulador desde la línea de comandos

El SDK de Android incluye un emulador de dispositivos Android (es decir, un dispositivo virtual que se ejecuta en una computadora). Android Emulator permite desarrollar y probar apps para Android sin usar un dispositivo físico.

En esta página, se describen las funciones de la línea de comandos que se pueden usar con Android Emulator. Si deseas obtener información para usar la IU de Android Emulator, consulta Cómo ejecutar apps en Android Emulator.

Cómo iniciar el emulador

Usa el comando emulator para iniciar el emulador, como alternativa a ejecutar el proyecto o iniciarlo mediante el Administrador de AVD.

Esta es la sintaxis de la línea de comandos básica para iniciar un dispositivo virtual desde un mensaje de terminal:

emulator -avd avd_name [ {-option [value]} … ]

O

emulator @avd_name [ {-option [value]} … ]

Por ejemplo, si inicias el emulador desde Android Studio que se ejecuta en una Mac, la línea de comandos predeterminada será similar a la siguiente:

/Users/janedoe/Library/Android/sdk/emulator/emulator -avd Pixel8_API_34 -netdelay none -netspeed full -qt-hide-window -grpc-use-token -idle-grpc-timeout

Ten en cuenta que los argumentos -qt-hide-window -grpc-use-token -idle-grpc-timeout solo se usan para ejecutar la ventana del emulador en Android Studio. Si deseas ejecutar el emulador en su propia ventana, no debes usar esos parámetros adicionales.

Puedes especificar opciones de arranque cuando inicias el emulador, pero no después.

Para obtener una lista de nombres de AVD, ingresa el siguiente comando:

emulator -list-avds

Usa esta opción para mostrar una lista de nombres de AVD del directorio principal de Android. Puedes anular el directorio principal predeterminado configurando la variable de entorno ANDROID_SDK_HOME, que especifica la raíz del directorio específico del usuario donde se almacena todo el contenido de AVD y los parámetros de configuración.

Puedes configurar la variable de entorno en la ventana de terminal antes de iniciar un dispositivo virtual o a través de la configuración del usuario en el sistema operativo. Por ejemplo, en el archivo .bashrc en Linux.

Para detener Android Emulator, cierra la ventana del emulador.

Cómo instalar una app

Además de instalar una app mediante Android Studio o la IU del emulador, puedes hacerlo en un dispositivo virtual con la utilidad adb.

Si deseas usar adb para instalar, ejecutar y probar tu app, sigue estos pasos generales:

  1. Compila y empaqueta la app en un APK, como se describe en Cómo compilar y ejecutar una app.
  2. Inicia el emulador desde la línea de comandos, como se describe en la sección anterior, con las opciones de inicio necesarias.
  3. Instala la app con adb.
  4. Ejecuta y prueba la app en el emulador.
    Mientras se esté ejecutando el emulador, también puedes usar la Consola del emulador para ejecutar comandos según sea necesario.

Si deseas desinstalar una app, hazlo tal como lo harías en un dispositivo Android.

El dispositivo virtual conserva la app y sus datos de estado de un reinicio a otro en una partición de disco de datos del usuario (userdata-qemu.img). Para borrar esos datos, inicia el emulador con la opción -wipe-data o borra los datos en el Administrador de AVD. Para obtener más información sobre la partición de datos del usuario y otro almacenamiento, consulta la siguiente sección.

Nota: La utilidad adb ve el dispositivo virtual como un dispositivo físico real. Por ese motivo, es posible que debas usar la marca -d con algunos comandos habituales de adb, como install. -d permite especificar cuál de varios dispositivos conectados se usará como destino de un comando. Si no especificas -d, el emulador tendrá como objetivo el primer dispositivo de la lista.

Descripción de los archivos y directorios predeterminados

El emulador usa archivos asociados; los del sistema de AVD y los directorios de datos son los más importantes. Es útil comprender la estructura y los archivos del directorio del emulador cuando se especifican opciones de la línea de comandos, aunque, por lo general, no es necesario modificar los directorios ni los archivos predeterminados.

Android Emulator usa el hipervisor (QEMU).

Directorio del sistema de AVD

El directorio del sistema contiene las imágenes del sistema Android que usa el emulador para simular el sistema operativo. Tiene archivos de solo lectura y específicos de la plataforma compartidos por todos los AVD del mismo tipo, incluidos el nivel de API, la arquitectura de CPU y la variante de Android. Las ubicaciones predeterminadas son las siguientes:

  • macOS y Linux: ~/Library/Android/sdk/system-images/android-apiLevel/variant/arch/
  • Windows: C:\Users\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\

donde:

  • apiLevel es un nivel de API numérico o una letra para las versiones preliminares. Por ejemplo, android-V indica la vista previa de VanillaIceCream de Android. En el lanzamiento, pasó a ser el nivel de API 35, designado por android-35.
  • variant es un nombre que corresponde a funciones específicas implementadas por la imagen del sistema. Por ejemplo, google_apis o android-wear.
  • arch es la arquitectura de la CPU de destino. Por ejemplo, x86.

Usa la opción -sysdir para especificar un directorio del sistema diferente para el AVD.

El emulador lee los siguientes archivos del directorio del sistema:

Tabla 1: Archivos del directorio del sistema que lee Android Emulator

Archivo Descripción Opción para especificar un archivo diferente
kernel-qemu o kernel-ranchu Es la imagen del kernel binario para el AVD. kernel-ranchu se basa en el emulador QEMU. -kernel
ramdisk.img Es la imagen de la partición de inicio. Este es un subconjunto de system.img que el kernel carga inicialmente antes de montar la imagen del sistema. Por lo general, contiene solo algunos objetos binarios y secuencias de comandos de inicialización. -ramdisk
system.img Es la versión inicial de solo lectura de la imagen del sistema. Específicamente, la partición que contiene las bibliotecas del sistema y los datos correspondientes al nivel de API y la variante. -system
userdata.img Es la versión inicial de la partición de datos, que se muestra como data/ en el sistema emulado y contiene todos los datos que se pueden escribir para el AVD. El emulador usa este archivo cuando creas un nuevo AVD o usas la opción ‑wipe-data. Si deseas obtener más información, consulta la descripción del archivo userdata-qemu.img en la siguiente sección. -initdata
-init-data

Directorio de datos de AVD

El directorio de datos de AVD, también llamado directorio de contenido, es específico de una sola instancia de AVD y contiene todos los datos que se pueden modificar para el AVD.

La ubicación predeterminada es la siguiente, donde name es el nombre del AVD:

  • macOS y Linux: ~/.android/avd/name.avd/
  • Windows 10 y versiones posteriores: C:\Users\user\.android\name.avd\

Usa la opción -datadir para especificar un directorio de datos de AVD diferente.

En la siguiente tabla, se muestran los archivos más importantes contenidos en este directorio:

Tabla 2: Archivos importantes en el directorio de datos de AVD

Archivo Descripción Opción para especificar un archivo diferente
userdata-qemu.img

Es el contenido de la partición de datos, que aparece como data/ en el sistema emulado. Cuando creas un nuevo AVD, o cuando utilizas la opción -wipe-data para restablecer el AVD a los valores predeterminados de fábrica, el emulador copia el archivo userdata.img en el directorio del sistema para crear este archivo.

Cada instancia de dispositivo virtual utiliza una imagen de datos de usuario que permite la escritura para almacenar datos específicos del usuario y la sesión. Por ejemplo, usa la imagen para almacenar datos, configuraciones, bases de datos y archivos de aplicaciones instaladas de un usuario único. Cada usuario tiene un directorio ANDROID_SDK_HOME diferente que almacena los directorios de datos para los AVD creados por ese usuario. Cada AVD tiene un solo archivo userdata-qemu.img.

-data
cache.img Es la imagen de la partición de caché, que aparece como cache/ en el sistema emulado. Está vacío la primera vez que creas un AVD o usas la opción -wipe-data. Almacena archivos de descarga temporales y el administrador de descargas y, a veces, el sistema los propaga. Por ejemplo, el navegador lo usa para almacenar en caché las páginas web y las imágenes descargadas mientras se ejecuta el emulador. Cuando se apaga el dispositivo virtual, se borra el archivo. Puedes conservar el archivo con la opción -cache. -cache
sdcard.img

Opcional: Es una imagen de partición de tarjeta SD que permite simular una tarjeta SD en un dispositivo virtual. Puedes crear un archivo de imagen de tarjeta SD en el Administrador de AVD o con la herramienta mksdcard. El archivo se almacena en la computadora de desarrollo y se carga durante el inicio.

Cuando defines un AVD en el Administrador de AVD, puedes elegir usar un archivo de tarjeta SD o uno creado con la herramienta mksdcard. Puedes ver el archivo sdcard.img asociado a un AVD en el Administrador de AVD. La opción -sdcard anula el archivo de la tarjeta SD especificado en el AVD. Ten en cuenta que esta opción de tarjeta SD no funcionará en Mac con Apple Silicon.

Puedes explorar archivos en una tarjeta SD simulada, así como enviar archivos a la tarjeta, copiarlos o quitarlos; todo con la IU del emulador o la utilidad adb mientras se ejecuta el dispositivo virtual. No puedes quitar una tarjeta SD simulada de un dispositivo virtual en ejecución.

Para copiar archivos a la tarjeta SD antes de cargarla, monta el archivo de imagen como un dispositivo de uso indefinido y, luego, copia los archivos. También puedes usar una utilidad, como el paquete mtools, a fin de copiar los archivos directamente en la imagen.

El emulador trata el archivo como un conjunto de bytes, por lo que el formato de la tarjeta SD no tiene importancia.

La opción -wipe-data no afecta este archivo. Si deseas borrarlo, hazlo y, luego, vuelve a crearlo con el Administrador de AVD o la herramienta mksdcard. Si se cambia el tamaño del archivo, también se borrará y se creará uno nuevo.

-sdcard

Cómo ver los directorios y archivos que usa el emulador

Puedes descubrir dónde se encuentran los archivos de dos maneras:

  • Usa la opción -verbose o -debug init cuando inicies el emulador desde la línea de comandos. Observa el resultado.
  • Usa el comando emulator -help-option para mostrar un directorio predeterminado. Por ejemplo:
    emulator -help-datadir
    Use '-datadir <dir>' to specify a directory where writable image files will be searched. On this system, the default directory is: /Users/me/.android See '-help-disk-images' for more information about disk image files.

Opciones de inicio de la línea de comandos

En esta sección, se muestran las opciones que puedes proporcionar en la línea de comandos cuando inicias el emulador.

Nota: Android Emulator está en desarrollo continuo para que sea más confiable. Si quieres reportar errores o ver el estado de los problemas informados sobre las opciones de la línea de comandos, consulta la Herramienta de seguimiento de errores de Android.

Opciones de uso general

En la siguiente tabla, se enumeran las opciones de inicio de la línea de comandos que posiblemente uses con mayor frecuencia:

Tabla 3: Opciones de línea de comandos de uso general

Opción de la línea de comandos Descripción
Quick Boot
-no-snapshot-load Realiza un inicio en frío y guarda el estado del emulador al salir.
-no-snapshot-save Realiza un inicio rápido, si es posible, pero no guarda el estado del emulador al salir.
-no-snapshot Inhabilita la función Quick Boot por completo y no carga ni guarda el estado del emulador.
Hardware del dispositivo
-camera-back mode
-camera-front mode
Configura el modo de emulación para una cámara frontal o posterior. Esto anula cualquier configuración de cámara en el AVD.

mode puede ser cualquiera de los siguientes valores:

  • emulated: El emulador simula una cámara en el software.
  • webcamn: El emulador usa una cámara web conectada a la computadora de desarrollo, especificada por número. Para obtener una lista de cámaras web, usa la opción -webcam-list. Por ejemplo, webcam0.
  • none: Inhabilita la cámara en el dispositivo virtual.

Por ejemplo:

emulator @Pixel8_API_34 -camera-back webcam0
.

-webcam-list Enumera las cámaras web de tu computadora de desarrollo que están disponibles para la emulación. Por ejemplo:
emulator @Pixel8_API_34 -webcam-list
        List of web cameras connected to the computer:
        Camera 'webcam0' is connected to device 'webcam0'
        on channel 0 using pixel format 'UYVY'

En el ejemplo, la primera instancia de webcam0 es el nombre que se usa en la línea de comandos. La segunda instancia de webcam0 es el nombre que usa el sistema operativo en la computadora de desarrollo. El segundo nombre varía según el SO.

A partir de la versión 25.2.4 de las herramientas del SDK, el nombre del AVD es obligatorio.

Imágenes de disco y memoria
-memory size

Especifica el tamaño físico de la RAM, de 1,536 a 8,192 MB. Por ejemplo:

emulator @Pixel8_API_34 -memory 2048

Este valor anula la configuración del AVD.

-sdcard filepath Especifica el nombre de archivo y la ruta de acceso a un archivo de imagen de partición de una tarjeta SD. Por ejemplo:

emulator @Pixel8_API_34 -sdcard C:/sd/sdcard.img

Si no se encuentra el archivo, se iniciará el emulador, pero sin una tarjeta SD. El comando muestra la advertencia No SD Card Image, que indica que no hay una imagen de la tarjeta SD.

Si no especificas esta opción, el valor predeterminado será sdcard.img en el directorio de datos a menos que el AVD especifique algo diferente. Para obtener más información sobre las tarjetas SD emuladas, consulta Directorio de datos de AVD.

-wipe-data Borra los datos del usuario y los copia del archivo de datos inicial. Esta opción borra los datos del dispositivo virtual y lo devuelve al mismo estado que cuando se definió por primera vez. Se quitan todas las apps instaladas y los ajustes de configuración. Por ejemplo:

emulator @Pixel8_API_34 -wipe-data

De forma predeterminada, el archivo de datos del usuario es userdata-qemu.img y el archivo de datos inicial es userdata.img. Ambos archivos se encuentran en el directorio de datos. La opción -wipe-data no afecta el archivo sdcard.img. Si deseas obtener más información sobre los datos del usuario, consulta la sección Descripción de los archivos y directorios predeterminados.

Depuración
-debug tags Habilita o inhabilita la visualización de mensajes de depuración para una o más etiquetas. Separa varias etiquetas con un espacio, una coma o una columna. Por ejemplo:

$ emulator @Pixel8_API_34 -debug init,metrics

Para inhabilitar una etiqueta, coloca un guion (-) antes de ella. Por ejemplo, la siguiente opción muestra todos los mensajes de depuración, excepto los relacionados con sockets y métricas de red:

-debug all,-socket,-metrics

Para ver una lista de etiquetas y descripciones, usa la opción -help-debug-tags. Por ejemplo:

emulator -help-debug-tags

Puedes definir las etiquetas de depuración predeterminadas en la variable de entorno ANDROID_VERBOSE. Define las etiquetas que deseas usar en una lista de valores delimitados por comas. En este ejemplo, se muestra cómo especificar las etiquetas socket y gles:

ANDROID_VERBOSE=socket,gles

Es equivalente a usar:

-debug-socket -debug-gles

o

-debug socket,gles

-debug-tag
-debug-no-tag
Habilita un tipo de mensaje de depuración específico. Usa el formulario no para inhabilitar un tipo de mensaje de depuración. Por ejemplo:

emulator @Pixel8_API_34 -debug-all -debug-no-metrics

Para obtener una lista de etiquetas, usa el comando emulator -help-debug-tags.

-logcat logtags Habilita la visualización de mensajes de Logcat para una o más etiquetas y los escribe en la ventana de terminal. Por ejemplo, el siguiente comando habilita los mensajes de error de todos los componentes:

emulator @Pixel8_API_34 -logcat *:e

logtags usa el mismo formato que el comando adb logcat logtags. Ingresa adb logcat -help para obtener más información. Es una lista de filtros de registro separados por comas o espacio con el formato componentName:logLevel. componentName es un asterisco comodín (*) o un nombre de componente, como ActivityManager, SystemServer, InputManager o WindowManager.

logLevel es uno de estos valores:

  • v - detallado
  • d (depuración)
  • i (informativo)
  • w (nivel de registro de advertencia)
  • e: error
  • s (silencio)

En el siguiente ejemplo, se muestran los mensajes de componentes de GSM a nivel de registro informativo:

emulator @Pixel8_API_34 -logcat '*:s GSM:i'

Si no proporcionas la opción -logcat en la línea de comandos, el emulador buscará la variable de entorno ANDROID_LOG_TAGS. Si se define ANDROID_LOG_TAGS con un valor de logtags válido y no está vacío, el emulador usará su valor para habilitar la salida de Logcat al terminal de forma predeterminada. También puedes redireccionar los mismos mensajes de registro u otros al terminal a través de adb.

Si deseas obtener más información sobre Logcat y adb, consulta Herramienta de línea de comandos Logcat, Cómo ver y escribir registros con Logcat, la clase Log y Cómo emitir comandos adb.

-show-kernel Muestra los mensajes de depuración del kernel en la ventana de terminal. Por ejemplo:

emulator @Pixel8_API_34 -show-kernel

Esta opción puede usarse para comprobar que el proceso de inicio funcione correctamente.

-verbose Muestra los mensajes de inicialización del emulador en la ventana de terminal. Por ejemplo:

emulator @Pixel8_API_34 -verbose

Muestra qué archivos y configuraciones están seleccionados cuando se inicia un dispositivo virtual definido en un AVD. Esta opción es lo mismo que especificar -debug-init.

Red
-dns-server servers Usa los servidores DNS especificados. servers es una lista de hasta cuatro nombres de servidor DNS o direcciones IP separados por comas. Por ejemplo:
emulator @Pixel8_API_34 -dns-server 192.0.2.0,
192.0.2.255

De forma predeterminada, el emulador intenta detectar los servidores DNS que estás usando y configura alias especiales en la red de firewall emulada para permitir que el sistema Android se conecte directamente a ellos. Usa la opción -dns-server para especificar una lista diferente de servidores DNS.

-http-proxy proxy Establece todas las conexiones de TCP mediante un proxy HTTP/HTTPS especificado. Si el emulador debe acceder a Internet mediante un servidor proxy, puedes usar esta opción o la variable de entorno http_proxy para configurar el redireccionamiento adecuado. Por ejemplo:

emulator @Pixel8_API_34 -http-proxy myserver:1981

proxy puede ser una de las siguientes opciones:

http://server:port
http://username:password@server:port

Se puede omitir el prefijo http://.

Si no se proporciona esta opción, el emulador buscará la variable de entorno http_proxy y utilizará automáticamente cualquier valor que coincida con el formato proxy. Para obtener más información, consulta Cómo usar el emulador con un proxy.

-netdelay delay

Establece la emulación de latencia de red en uno de los siguientes valores de delay en milisegundos:

  • gsm: GSM/CSD (150 mín., 550 máx.)
  • hscsd: HSCSD (80 mín., 400 máx.)
  • gprs: GPRS (35 mín., 200 máx.)
  • edge: EDGE/EGPRS (80 mín., 400 máx.)
  • umts: UMTS/3G (35 mín., 200 máx.)
  • hsdpa: HSDPA (0 mín., 0 máx.)
  • lte: LTE (0 mín., 0 máx.)
  • evdo: EVDO (0 mín., 0 máx.)
  • none: Sin latencia, el valor predeterminado (0 mín., 0 máx.)
  • num: Especifica la latencia exacta
  • min:max: Especifica latencias mínimas y máximas individuales

Por ejemplo:

emulator @Pixel8_API_34 -netdelay gsm
.

El emulador admite la limitación de la red y latencias de conexión más altas. Puedes definirlo mediante la configuración de la máscara o con las opciones ‑netspeed y -netdelay.

-netfast Inhabilita la limitación de la red. Por ejemplo:

emulator @Pixel8_API_34 -netfast

Esta opción es igual a especificar -netspeed full -netdelay none. Estos son los valores predeterminados para esas opciones.

-netspeed speed

Establece la emulación de la velocidad de red. Especifica las velocidades máximas de carga y descarga de red con uno de los siguientes valores de speed en kbps:

  • gsm: GSM/CSD (ascendente: 14.4, descendente: 14.4)
  • hscsd: HSCSD (ascendente: 14.4, descendente: 57.6)
  • gprs: GPRS (ascendente: 28.8, descendente: 57.6)
  • edge: EDGE/EGPRS (ascendente: 473.6, descendente: 473.6)
  • umts: UMTS/3G (ascendente: 384.0, descendente: 384.0)
  • hsdpa: HSDPA (ascendente: 5,760.0, descendente: 13,980.0)
  • lte: LTE (ascendente: 58,000, descendente: 173,000)
  • evdo: EVDO (ascendente: 75,000, descendente: 280,000)
  • full: Sin límite, valor predeterminado (ascendente: 0.0, descendente: 0.0)
  • num: Especifica la velocidad de carga y descarga
  • up:down: Especifica las velocidades ascendentes y descendentes individuales

Por ejemplo:

emulator @Pixel8_API_34 -netspeed edge

El emulador admite la limitación de la red y latencias de conexión más altas. Puedes definirlo mediante la configuración de la máscara o con las opciones ‑netspeed y -netdelay.

-port port Configura el número de puerto TCP que se usa para la consola y adb. Por ejemplo:

emulator @Pixel8_API_34 -port 5556

El valor predeterminado es 5554 para la primera instancia de dispositivo virtual que se ejecuta en la computadora. Un dispositivo virtual normalmente ocupa un par de puertos adyacentes: un puerto de consola y un puerto adb. La consola del primer dispositivo virtual que se ejecuta en una computadora particular utiliza el puerto de consola 5554 y el puerto adb 5555. Las instancias subsiguientes usan números de puerto que aumentan en dos. Por ejemplo, 5556/5557, 5558/5559, etc. El rango es de 5554 a 5682, y se permiten 64 dispositivos simultáneos.

Las asignaciones de puertos suelen ser las mismas que para especificar -ports port,{port + 1}. {port + 1} debe ser libre y se reserva para adb. Si alguno de los puertos de la consola o de adb ya está en uso, no se iniciará el emulador.

La opción ‑port informa los puertos y el número de serie que usa el dispositivo virtual, y advierte si hay algún problema con los valores proporcionados. En la IU del emulador, puedes ver el número de puerto de la consola en el título de la ventana y el número del puerto adb seleccionando Help > About.

Ten en cuenta que si el valor de port no es un número par entre 5554 y 5584, se iniciará el dispositivo virtual, pero no estará visible cuando uses el comando adb devices si el adb server se inicia después del emulador. Por este motivo, recomendamos usar un número de puerto de consola que sea par.

-ports
console-port,adb-port
Configura los puertos TCP que se usan para la consola y adb. Por ejemplo:

emulator @Pixel8_API_34 -ports 5556,5559

El rango de puertos válidos es de 5554 a 5682, lo que permite 64 dispositivos virtuales simultáneos. La opción -ports informa qué puertos y número de serie está usando el emulador, y advierte si hay problemas con los valores proporcionados.

Recomendamos utilizar la opción -port en su lugar, siempre que sea posible. La opción -ports está disponible para las configuraciones de red que requieren una configuración especial.

Si deseas obtener más información para configurar los puertos de consola y adb, consulta la opción -port.

-tcpdump filepath Captura paquetes de red y los almacena en un archivo. Por ejemplo:

emulator @Pixel8_API_34 -tcpdump /path/dumpfile.cap

Usa esta opción para comenzar a capturar todos los paquetes de red que se envían a través de la LAN Ethernet virtual del emulador. Luego, puedes usar una herramienta, como Wireshark, para analizar el tráfico.

Ten en cuenta que esta opción captura todos los paquetes de Ethernet y no se limita a las conexiones TCP.

Sistema
-accel mode Configura la aceleración de VM del emulador. Por ejemplo:

emulator @Pixel8_API_34 -accel auto

La emulación acelerada funciona para imágenes de sistema x86 y x86_64. En Linux, se basa en KVM. En Windows y Mac, se basa en una CPU Intel y un controlador HAXM de Intel. Esta opción se omite si no se está emulando un dispositivo x86 o x86_64.

Los valores válidos para mode son los siguientes:

  • auto: Determina automáticamente si se admite la aceleración y la usa cuando es posible (valor predeterminado).
  • off: Inhabilita la aceleración por completo; es muy útil para la depuración.
  • on: Fuerza la aceleración. Si no están instalados o no se pueden usar KVM o HAXM, no se inicia el emulador y se muestra un mensaje de error.

Si deseas obtener más información, consulta Cómo configurar la aceleración de hardware para Android Emulator.

-accel-check Comprueba si está instalado un hipervisor requerido para la aceleración de VM del emulador (HAXM o KVM). Por ejemplo:

emulator -accel-check

Si deseas obtener más información, consulta Cómo verificar si hay un hipervisor instalado.

-engine engine

Especifica el motor del emulador:

  • auto: Selecciona automáticamente un motor (predeterminado).
  • classic: Usa el motor QEMU 1 anterior (obsoleto).
  • qemu2: Usa el motor QEMU 2 más reciente.

Por ejemplo:

emulator @Pixel8_API_34 -engine auto

La detección automática debe elegir el valor que proporciona el mejor rendimiento cuando se emula un AVD en particular. Usa la opción -engine solo para fines de depuración y comparación.

-gpu mode Selecciona el modo de emulación de GPU. Por ejemplo:

emulator @Pixel8_API_34 -gpu swiftshader_indirect

Si deseas obtener más información, consulta Cómo configurar la aceleración de gráficos.

-no-accel Inhabilita la aceleración de VM cuando se usa una imagen de sistema x86 o x86_64. Es útil solo para depuración y es lo mismo que especificar -accel off. Por ejemplo:

emulator @Pixel8_API_34 -no-accel

Si deseas obtener más información, consulta Cómo configurar la aceleración de hardware para Android Emulator.

-nojni
-no-jni
Inhabilita las comprobaciones de interfaz nativa de Java (JNI) en el entorno de ejecución de Android Dalvik o ART. Por ejemplo:

emulator @Pixel8_API_34 -nojni

Cuando inicias un dispositivo virtual, las comprobaciones de JNI extendidas están habilitadas de forma predeterminada. Para obtener más información, consulta Sugerencias de JNI.

-selinux {disabled|permissive} Configura el módulo de seguridad Security-Enhanced Linux (SELinux) en el modo disabled o permissive en un sistema operativo Linux. Por ejemplo:

me-linux$ emulator @Pixel8_API_34 -selinux permissive

De forma predeterminada, SELinux está en modo enforcing, lo que significa que se aplica la política de seguridad. El modo permissive carga la política SELinux, pero no la aplica. Esta opción solo registra los incumplimientos de política. El modo disabled inhabilita la compatibilidad con el kernel para SELinux.

-timezone timezone

Establece la zona horaria del dispositivo virtual en timezone en lugar de la zona horaria del host. Por ejemplo:

emulator @Pixel8_API_34 -timezone Europe/Paris

De forma predeterminada, el emulador usa la zona horaria de la computadora de desarrollo. Usa esta opción para especificar otra zona horaria, o si la detección automática no funciona correctamente. El valor timezone debe estar en formato zoneinfo, que es area/location o area/subarea/location. Por ejemplo:

  • America/Los_Angeles
  • Europe/Paris
  • America/Argentina/Buenos_Aires

La zona horaria especificada debe estar en la base de datos de zoneinfo.

-version Muestra el número de versión del emulador. Por ejemplo:

emulator @Pixel8_API_34 -version

O bien:

emulator -version

IU
-no-boot-anim Inhabilita la animación de inicio durante el inicio del emulador para un inicio más rápido. Por ejemplo:

emulator @Pixel8_API_34 -no-boot-anim

En computadoras más lentas, esta opción puede acelerar en gran medida la secuencia de inicio.

-screen mode Establece el modo de pantalla táctil emulada. Por ejemplo:

emulator @Pixel8_API_34 -screen no-touch

mode puede ser cualquiera de los siguientes valores:

  • touch: Emula una pantalla táctil (predeterminado).
  • multi-touch: Emula una pantalla multitáctil.
  • no-touch: Inhabilita la emulación de pantalla táctil y multitáctil.

Opciones avanzadas

Las opciones de inicio de la línea de comandos de la siguiente tabla están disponibles, pero el desarrollador promedio de apps, en general, no las usa.

En las descripciones, el directorio de trabajo es el directorio actual del terminal donde se ingresan los comandos. Si deseas obtener información sobre el directorio del sistema y el directorio de datos de AVD, y sobre los archivos almacenados en ellos, consulta la sección sobre directorios y archivos predeterminados.

Algunas de estas opciones son adecuadas para desarrolladores de apps externas, y algunas las usan principalmente los desarrolladores de plataformas. Los desarrolladores de apps crean apps para Android y las ejecutan en AVD específicos. Los desarrolladores de plataformas trabajan en el sistema Android y lo ejecutan dentro del emulador sin AVD creados previamente.

Tabla 4: Opciones avanzadas de la línea de comandos

Opción avanzada Descripción breve
-bootchart timeout

Habilita el diagrama de inicio, con un tiempo de espera en segundos. Algunas imágenes del sistema Android tienen un sistema de iniciación modificado que integra la instalación de gráficos de inicio. Puedes pasar un tiempo de espera de gráfico de inicio al sistema con esta opción. Si el sistema de inicialización no tiene un gráfico de inicio activado, la opción no hace nada. Esta opción es principalmente útil para desarrolladores de plataforma, no para los de apps externas.

Por ejemplo:

emulator @Pixel8_API_34 -bootchart 120
-cache filepath

Especifica un archivo de imagen de partición de caché. Proporciona un nombre de archivo, una ruta absoluta o una ruta relativa al directorio de datos, para configurar un archivo de caché persistente. Si no existe el archivo, el emulador lo crea en un archivo vacío.

Por ejemplo:

emulator @Pixel8_API_34 -cache
   ~/.android/avd/Pixel8_API_34.avd/cache_persistent.img

Si no usas esta opción, el valor predeterminado será un archivo temporal llamado cache.img. Para obtener más información, consulta el directorio de datos de AVD.

-cache-size size

Configura el tamaño de la partición de la caché en MB.

Por ejemplo:

emulator @Pixel8_API_34 -cache-size 1000

Si no especificas esta opción, el valor predeterminado será 66 MB. Por lo general, la mayoría de los desarrolladores de apps no precisan esta opción, a menos que necesiten descargar archivos muy grandes que pesen más que la caché predeterminada. Si deseas obtener más información acerca del almacenamiento de archivos en caché, consulta el directorio de datos de AVD.

-data filepath

Configura el archivo de imagen de partición de datos del usuario. Proporciona un nombre de archivo y una ruta de acceso absoluta o una ruta relativa al directorio de trabajo para configurar un archivo de datos de usuario persistente. Si no existe el archivo, el emulador crea una imagen del archivo userdata.img predeterminado, la almacena en el nombre de archivo especificado y conserva los datos del usuario después del apagado.

Por ejemplo:

emulator @Pixel8_API_34 -data
   ~/.android/avd/Pixel8_API_34.avd/userdata-test.img

Si no usas esta opción, el valor predeterminado será un archivo llamado userdata-qemu.img. Si deseas obtener más información sobre el archivo de datos del usuario, consulta el directorio de datos de AVD.

-datadir dir

Especifica un directorio de datos con una ruta de acceso absoluta. Para obtener más información, consulta el directorio de datos de AVD.

Por ejemplo:

emulator @Pixel8_API_34 -datadir
   ~/.android/avd/Pixel8_API_34.avd/mytest
-force-32bit

Usa el emulador de 32 bits en plataformas de 64 bits. De manera ocasional, esta opción es útil para pruebas o depuraciones. Por ejemplo, se produjo un error por el que el emulador a veces no se ejecutaba en Windows de 64 bits, aunque sí lo hacía en la versión de 32 bits. Con esta opción, fue posible llevar a cabo comparaciones para depurar el problema. Por ejemplo:

emulator @Pixel8_API_34 -force-32bit
-help-disk-images

Permite obtener ayuda sobre las imágenes de disco. Esta opción proporciona información relevante para los desarrolladores de apps y plataformas. Por ejemplo:

emulator -help-disk-images
-help-char-devices

Obtiene ayuda sobre las especificaciones de device de caracteres. Algunas opciones del emulador requieren un parámetro device. Por ejemplo:

emulator -help-char-devices
-help-sdk-images

Permite obtener ayuda sobre imágenes en el disco relevantes para desarrolladores de apps. Esta opción obtiene información sobre la ubicación de los archivos de imagen para un AVD creado con las herramientas del SDK. Por ejemplo:

emulator -help-sdk-images
-help-build-images

Permite obtener ayuda sobre imágenes en el disco relevantes para desarrolladores de plataformas. Por ejemplo:

emulator -help-build-images
-initdata filepath
-init-data filepath

Especifica la versión inicial de la partición de datos. Después de borrar los datos del usuario, el emulador copia el contenido del archivo especificado en los datos del usuario (de forma predeterminada, el archivo userdata-qemu.img), en lugar de usar el archivo predeterminado userdata.img como versión inicial. Especifica el nombre de archivo y una ruta de acceso absoluta o una ruta relativa al directorio de trabajo.

Por ejemplo:

emulator @Pixel8_API_34 -initdata
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/userdata-test.img

Si no especificas una ruta de acceso, se coloca el archivo en el directorio del sistema. Para obtener más información, consulta el directorio del sistema de AVD.

-kernel filepath

Usa un kernel emulado específico. Si no especificas una ruta de acceso, el emulador buscará en el directorio del sistema.

Usa la opción ‑show‑kernel para ver los mensajes de depuración del kernel.

Por ejemplo:

emulator @Pixel8_API_34 -kernel
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/kernel-test.img -show-kernel

Si no especificas esta opción, el valor predeterminado será kernel-ranchu. Para obtener más información, consulta el directorio del sistema de AVD.

-noaudio
-no-audio

Inhabilita la compatibilidad de audio para este dispositivo virtual. Algunas computadoras Linux y Windows tienen controladores de audio con fallas que causan diferentes síntomas (por ejemplo, evitan que se inicie el emulador). En este caso, usa esta opción para solucionar el problema. También puedes utilizar la variable de entorno QEMU_AUDIO_DRV para cambiar el backend de audio.

Por ejemplo:

emulator @Pixel8_API_34 -noaudio
-nocache
-no-cache

Inicia el emulador sin una partición de caché. Si no usas esta opción, el valor predeterminado será un archivo temporal llamado cache.img. Esta opción es solo para desarrolladores de plataformas. Para obtener más información, consulta el directorio de datos de AVD.

Por ejemplo:

emulator @Pixel8_API_34 -nocache
-no-snapshot

Inhibe las operaciones de carga y guardado automático, lo que hace que el emulador ejecute una secuencia de inicio completa y pierda el estado cuando se cierra. Anula la opción -snapshot.

Por ejemplo:

emulator @Pixel8_API_34 -no-snapshot
-no-snapshot-load

Evita que el emulador cargue el estado de AVD desde el almacenamiento de instantáneas. Realiza un inicio completo.

Por ejemplo:

emulator @Pixel8_API_34 -no-snapshot-load
-no-snapshot-save

Evita que el emulador guarde el estado de AVD en el almacenamiento de instantáneas en la salida. Esto significa que se perderán todos los cambios.

Por ejemplo:

emulator @Pixel8_API_34 -no-snapshot-save
-no-snapshot-update-time

No intentes corregir la hora del reloj de AVD de inmediato luego de restaurar la instantánea. Esta opción puede ser útil durante las pruebas, ya que evita un salto repentino en el tiempo. Sin embargo, las actualizaciones de hora aún se envían al AVD aproximadamente cada 15 segundos.

Por ejemplo:

emulator @Pixel8_API_34 -no-snapshot-update-time
-no-snapstorage

Inicia el emulador sin montar un archivo para almacenar o cargar instantáneas de estado. Esto fuerza un reinicio completo e inhabilita la funcionalidad de instantáneas de estado. Esta opción anula las opciones -snapstorage y -snapshot.

Por ejemplo:

emulator @Pixel8_API_34 -no-snapstorage
-no-window

Inhabilita la visualización de la ventana de gráficos en el emulador. Esta opción es útil cuando se ejecuta el emulador en servidores que no tienen visualización. Puedes acceder al emulador a través de adb o la consola. Por ejemplo:

emulator @Pixel8_API_34 -no-window
-partition-size size

Especifica el tamaño de la partición de datos en MB. Por ejemplo:

emulator @Pixel8_API_34 -partition-size 1024
-prop name=value

Configura una propiedad del sistema Android en el emulador cuando se inicia. name debe ser un nombre de propiedad etiquetado como qemu_prop de 32 caracteres como máximo, sin espacios, y value debe ser una string de 92 caracteres como máximo. Para ver un ejemplo, consulta el archivo property_contexts. Puedes especificar varias opciones ‑prop en una sola línea de comandos. Esta opción puede ser útil para la depuración. Por ejemplo:

emulator @Pixel8_API_34 -prop qemu.name=value -prop qemu.abc=xyz
-qemu args Transmite argumentos al software del emulador de QEMU. Cuando uses esta opción, asegúrate de que sea la última opción especificada, ya que todas las opciones posteriores se interpretan como opciones específicas de QEMU. Esta opción es muy avanzada y solo la deben usar los desarrolladores que están muy familiarizados con la emulación de QEMU y Android.
-qemu -h

Muestra la ayuda de -qemu. Por ejemplo:

emulator -qemu -h
-ramdisk filepath

Especifica una imagen de arranque de ramdisk. Especifica el nombre de archivo y una ruta de acceso absoluta o una ruta relativa al directorio de trabajo.

Por ejemplo:

emulator @Pixel8_API_34 -ramdisk
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/ramdisk-test.img

Si no usas esta opción, el valor predeterminado será el archivo ramdisk.img del directorio del sistema. Para obtener más información, consulta el directorio del sistema de AVD.

-report-console socket

Informa el puerto de la consola a un tercero remoto antes de iniciar la emulación. Puede ser útil para una secuencia de comandos de prueba automatizada. socket debe usar uno de estos formatos:

  • tcp:port[,server][,max=seconds][,ipv6]
  • unix:port[,server][,max=seconds][,ipv6]

Si deseas obtener más información, usa la opción -help-report-console según se describe en la sección sobre ayuda para opciones específicas.

-shell

Crea una consola de shell raíz en el terminal actual. Entre las diferencias que tiene esta opción con el comando adb shell, se encuentran las siguientes:

  • Crea un shell raíz que te permite modificar muchas partes del sistema.
  • Funciona incluso si se rompe el adb daemon en el sistema emulado.
  • Presiona Control + C (o Command - C en macOS) para detener el emulador en lugar de la shell.

Por ejemplo:

emulator @Pixel8_API_34 -shell
-snapshot name

Especifica el nombre de una instantánea dentro de un archivo de almacenamiento de instantáneas para las operaciones de inicio y guardado automáticas.

En lugar de ejecutar una secuencia de inicio completa, el emulador puede reanudar la ejecución desde una instantánea de estado anterior, que generalmente es mucho más rápida. Cuando proporcionas esta opción, el emulador carga la instantánea de ese nombre desde la imagen de la instantánea y la guarda de nuevo con el mismo nombre al salir.

Si no usas esta opción, el valor predeterminado es una secuencia de inicio completa. Si no existe la instantánea especificada, el emulador lleva a cabo una secuencia de inicio completa y realiza una operación de guardado.

Consulta la opción -snapstorage para obtener información sobre cómo especificar un archivo de almacenamiento de instantáneas y el archivo predeterminado.

emulator @Pixel8_API_34 -snapshot snapshot2

Recuerda que, durante el proceso de carga de una instantánea, se reemplaza todo el contenido del sistema, los datos del usuario y las imágenes de la tarjeta SD por el contenido que tenían cuando se tomó la instantánea. A menos que guardes esta información en una instantánea diferente, se perderán todos los cambios posteriores a esa fecha.

También puedes crear una instantánea desde la consola del emulador con el comando avd snapshot save name. Si deseas obtener más información, consulta Cómo enviar comandos de la Consola del emulador.

-snapshot-list

Muestra una lista de instantáneas disponibles. Muestra una tabla de instantáneas que se almacenan en el archivo de almacenamiento de instantáneas con el que se inició el emulador y luego se cierra. Si también especificas -snapstorage file, este comando mostrará una tabla de las instantáneas almacenadas en el archivo.

Por ejemplo:

emulator @Pixel8_API_34 -snapshot-list -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

Puedes usar los valores de las columnas ID y TAG en la salida como argumentos para la opción -snapshot.

-snapstorage filepath

Especifica un archivo de repositorio que contenga todas las instantáneas de estado. Todas las instantáneas tomadas durante la ejecución se guardan en este archivo. Solo se pueden restablecer las instantáneas de este archivo durante la ejecución del emulador.

Por ejemplo:

emulator @Pixel8_API_34 -snapstorage
   ~/.android/avd/Pixel8_API_34.avd/snapshots-test.img

Si no especificas esta opción, el valor predeterminado será snapshots.img en el directorio de datos. Si no existe el archivo especificado, se iniciará el emulador, pero sin compatibilidad para guardar o cargar las instantáneas de estado.

-sysdir dir

Especifica un directorio del sistema con una ruta de acceso absoluta. Para obtener más información, consulta el directorio del sistema de AVD. Por ejemplo:

emulator @Pixel8_API_34 -sysdir
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/test
-system filepath

Especifica un archivo de sistema inicial. Especifica el nombre de archivo y una ruta de acceso absoluta o una ruta relativa al directorio de trabajo.

Por ejemplo:

emulator @Pixel8_API_34 -system
   ~/Library/Android/sdk/system-images/android-34/
   google_apis/x86_64/system-test.img

Si no usas esta opción, el valor predeterminado será el archivo system.img del directorio del sistema. Para obtener más información, consulta el directorio del sistema de AVD.

-use-system-libs

En Linux, usa el sistema libstdc++ en lugar de la versión empaquetada con el sistema del emulador. Usa esta opción solo si no se iniciará el emulador normalmente y ten en cuenta que no siempre funciona. De forma alternativa, puedes configurar la variable de entorno ANDROID_EMULATOR_USE_SYSTEM_LIBS en 1.

Por ejemplo:

me-linux$ emulator @Pixel8_API_34 -use-system-libs
-writable-system

Usa esta opción para tener una imagen de sistema grabable durante la sesión de emulación. Para ello, haz lo siguiente:

  1. Inicia un dispositivo virtual con la opción -writable-system.
  2. Ingresa el comando adb remount desde un terminal de comando para indicar al emulador que vuelva a montar system/ como lectura/escritura. De forma predeterminada, está montado como solo lectura.

El uso de esta marca crea una copia temporal de la imagen del sistema que puede ser muy grande, de hasta cientos de MB, pero se destruirá cuando se cierre el emulador.

Opciones obsoletas

Las siguientes opciones de la línea de comandos son obsoletas:

  • -audio-in
  • -audio-out
  • -charmap
  • -code-profile
  • -cpu-delay
  • -dpi-device
  • -dynamic_skin
  • -enable-kvm
  • -gps
  • -image
  • -keyset
  • -help-keys
  • -help-keyset-file
  • -nand-limits
  • -noskin
  • -no-skin
  • -onion
  • -onion-alpha
  • -onion-rotation
  • -radio
  • -ranchu
  • -raw-keys
  • -scale
  • -shared-net-id
  • -shell-serial
  • -skin
  • -skindir
  • -trace
  • -useaudio

Cómo obtener ayuda sobre las opciones de la línea de comandos

En esta sección, se describe cómo obtener ayuda sobre las opciones de la línea de comandos. Proporciona información más detallada sobre las opciones de línea de comandos del emulador que son de uso general y están disponibles cuando inicias el emulador.

Cómo visualizar todas las opciones del emulador

Para mostrar una lista de todas las opciones del emulador, incluida una descripción breve, ingresa el siguiente comando:

emulator -help

Cómo obtener ayuda detallada para una opción específica

A fin de mostrar la ayuda para una opción de inicio específica, ingresa el siguiente comando:

emulator -help-option

Por ejemplo:

emulator -help-netspeed

Esta ayuda es más detallada que la descripción proporcionada por la opción -help.

Cómo obtener ayuda detallada para todas las opciones

A fin de obtener ayuda detallada para todas las opciones del emulador, ingresa el siguiente comando:

emulator -help-all

Cómo visualizar variables de entorno del emulador

Para obtener una lista de las variables de entorno del emulador, ingresa el siguiente comando:

emulator -help-environment

Puedes configurar variables de entorno en la ventana de terminal antes de iniciar un dispositivo virtual, o bien puedes hacerlo a través de la configuración del usuario en el sistema operativo. Por ejemplo, establécelo en el archivo .bashrc en Linux.

Cómo visualizar etiquetas de depuración

A fin de imprimir una lista de etiquetas para las opciones de -debug, ingresa el siguiente comando:

emulator -help-debug-tags

Las opciones de -debug te permiten habilitar o inhabilitar los mensajes de depuración de los componentes específicos del emulador, según lo especifican las etiquetas.