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

El SDK de Android incluye un emulador de dispositivo Android; es decir, un dispositivo virtual que se ejecuta en la computadora. Android Emulator permite desarrollar y probar apps de 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. Para obtener información sobre cómo 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 AVD Manager.

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 bien:

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

Por ejemplo, si lanzas 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 Nexus_5X_API_23 -netdelay none -netspeed full

Puedes especificar opciones de inicio cuando lanzas el emulador, pero no después.

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

emulator -list-avds

Si usas esta opción, se muestra una lista de nombres de AVD del directorio principal de Android. Ten en cuenta que puedes anular el directorio principal predeterminado si configuras la variable de entorno ANDROID_SDK_HOME: la raíz del directorio específico del usuario, donde se almacena todo el contenido de AVD y los ajustes de configuración. Puedes configurar la variable de entorno en la ventana del terminal antes de lanzar un dispositivo virtual, o bien puedes hacerlo mediante los ajustes del usuario en el sistema operativo, por ejemplo, en el archivo .bashrc de 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 adb.

Para instalar una app con adb y luego ejecutar y probar la app, sigue estos pasos generales:

  1. Compila y empaqueta la app en un APK, como se describe en Build and Run Your App.
  2. Inicia el emulador desde la línea de comandos, como se describe en la sección anterior. Si es necesario, usa las opciones de inicio.
  3. Instala la app con adb.
  4. Ejecuta y prueba la app en el emulador.
    Mientras el emulador está en ejecución, también puedes usar Emulator Console para ejecutar comandos, según sea necesario.
  5. El dispositivo virtual conserva la app y los datos de estado de un reinicio a otro, en una partición de disco de datos del usuario (userdata-qemu.img). Para borrar estos datos, inicia el emulador con la opción -wipe-data o borra los datos en AVD Manager. Para obtener más información sobre la partición de datos del usuario y otro almacenamiento, consulta la siguiente sección.
    Para desinstalar una app, hazlo de la misma manera que lo harías en un dispositivo Android.

Nota: La utilidad adb ve al dispositivo virtual como un dispositivo físico. Por este motivo, es posible que debas usar la marca -d con algunos comandos comunes 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.

Cómo entender los directorios y archivos predeterminados

El emulador usa archivos asociados; los del sistema de AVD y los directorios de datos son los más importantes. Ayuda a comprender los archivos y la estructura del directorio del emulador cuando se especifican opciones de la línea de comandos. Sin embargo, no es necesario modificar los directorios predeterminados ni los archivos.

Android Emulator usa el hipervisor de emulador rápido (QEMU). Las versiones iniciales de Android Emulator usaban QEMU 1 (goldfish) y las posteriores usan QEMU 2 (ranchu).

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:

  • Mac OS X y Linux: ~/Library/Android/sdk/system-images/android-apiLevel/variant/arch/
  • Microsoft Windows XP: C:\Documents and Settings\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\
  • Windows Vista: C:\Users\user\Library\Android\sdk\system-images\android-apiLevel\variant\arch\

Donde:

  • apiLevel es un nivel de API numérica o una letra para versiones preliminares. Por ejemplo, android-M indicó la versión preliminar de Android Marshmallow. En la actualización, se convirtió en API de nivel 23, designada por android-23.
  • variant es un nombre que corresponde a funciones específicas implementadas por la imagen del sistema, como google_apis o android-wear.
  • arch es la arquitectura de CPU de destino; por ejemplo, x86.

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

El emulador lee los siguientes archivos del directorio del sistema.

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 es el emulador QEMU 2, la versión más reciente. -kernel
system.img Es la versión inicial de solo lectura de la imagen del sistema; en especial, la partición que contiene las bibliotecas del sistema y los datos correspondientes al nivel de API y la variante. -system
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
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 se crea un nuevo AVD o se usa la opción ‑wipe-data. Para obtener más información, consulta la descripción del archivo userdata-qemu.img en la sección siguiente. -initdata
-init-data

Directorio de datos de AVD

El directorio de datos de AVD, también denominado 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:

  • Mac OS X y Linux: ~/.android/avd/name.avd/
  • Microsoft Windows XP: C:\Documents and Settings\user\.android\name.avd\
  • Windows Vista 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.

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 se crea un nuevo AVD o cuando se utiliza la opción -wipe-data para restablecer el AVD a los valores predeterminados, 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 instalados 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 partición de caché, que aparece como cache/ en el sistema emulado. Está vacío la primera vez que creas un AVD o utilizas la opción -wipe-data. Almacena archivos de descarga temporales y lo completa el administrador de descargas y, a veces, el sistema; 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: Una imagen de partición de tarjeta SD que permita simular una tarjeta SD en un dispositivo virtual. Puedes crear un archivo de imagen de tarjeta SD en AVD Manager o con la herramienta mksdcard. El archivo se almacena en la computadora de desarrollo y se carga durante el inicio.

Si defines un AVD en AVD Manager, tienes la opción de usar un archivo de tarjeta SD o uno creado con la herramienta mksdcard. Puedes ver el archivo sdcard.img asociado a un AVD en AVD Manager. La opción -sdcard anula el archivo de la tarjeta SD especificado en el AVD.

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, puedes montar el archivo de imagen como un dispositivo de uso indefinido y, luego, copiar los archivos. También puedes usar una utilidad, como el paquete mtools, para 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.

Ten en cuenta que la opción -wipe-data no afecta este archivo. Si deseas quitar el archivo, deberás borrarlo y, luego, volver a crearlo con AVD Manager o la herramienta mksdcard. Si se cambia al 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:

  • Cuando inicies el emulador desde la línea de comandos, usa la opción -verbose o -debug init y observa el resultado.
  • Usa el comando emulator -help-option para visualizar 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 informar errores o ver el estado de los problemas informados sobre las opciones de la línea de comandos, consulta el Registro de problemas de Android.

Opciones de uso frecuente

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

Opción de la línea de comandos Descripción
Inicio rápido
-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 de inicio rápido por completo: 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. Anula cualquier configuración de cámara en el AVD.

mode puede ser cualquiera de los valores siguientes:

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

Por ejemplo:


emulator @Nexus_5X_API_23 -camera-back webcam0
-webcam-list Enumera las cámaras web de la computadora del desarrollador que están disponibles para emulación. Por ejemplo:

emulator @Nexus_5X_API_23 -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 del desarrollador. 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, aunque es posible que no lo sea en el futuro.

Imágenes en disco y memoria
-memory size

Especifica el tamaño físico de la RAM, de 128 a 4,096 MB. Por ejemplo:


emulator @Nexus_5X_API_23 -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 @Nexus_5X_API_23 -sdcard C:/sd/sdcard.img

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

Si no se especifica esta opción, el valor predeterminado es 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 copia los datos 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 @Nexus_5X_API_23 -wipe-data

De forma predeterminada, el archivo de datos del usuario es userdata-qemu.img y el de datos inicial es userdata.img (ambos residen en el directorio de datos). La opción -wipe-data no afecta el archivo sdcard.img. Para obtener más información sobre los datos del usuario, consulta Descripción de los directorios y archivos predeterminados.

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


$ emulator @Nexus_5X_API_23 -debug init,metrics

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

-debug all,-socket,-metrics

Para obtener una lista de las etiquetas y las 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 la definición con las etiquetas socket y gles:


ANDROID_VERBOSE=socket,gles

Es equivalente a usar:

-debug-socket -debug-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 @Nexus_5X_API_23 -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 los mensajes de logcat para una o más etiquetas, y permite escribirlos en la ventana del terminal. Por ejemplo, el siguiente comando habilita los mensajes de error de todos los componentes:


emulator @Nexus_5X_API_23 -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 espacios o comas del formato componentName:logLevel. componentName es un asterisco comodín (*) o un nombre de componente, como ActivityManager, SystemServer, InputManager, WindowManager, etc. logLevel es uno de los valores siguientes:

  • v: detallado
  • d: depuración
  • i: informativo
  • w: nivel de registro de advertencia
  • e: error
  • s: silencioso

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


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

Si no proporcionas la opción -logcat en la línea de comandos, el emulador busca 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 usa su valor para habilitar la salida de logcat al terminal de forma predeterminada. También puedes redirigir los mismos mensajes de registro u otros al terminal a través de adb. Para obtener más información sobre logcat y adb, consulta Herramienta de línea de comandos logcat, Escribir y ver registros con Logcat, Clase de registro y Referencia de comandos de ADB.

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


emulator @Nexus_5X_API_23 -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 del terminal. Por ejemplo:


emulator @Nexus_5X_API_23 -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 delimitada por comas de hasta cuatro nombres de servidores DNS o direcciones IP. Por ejemplo:

emulator @Nexus_5X_API_23 -dns-server 192.0.2.0,
192.0.2.255

De manera 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 @Nexus_5X_API_23 -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 busca la variable de entorno http_proxy y usa 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

Configura 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 las latencias mínimas y máximas individuales

Por ejemplo:


emulator @Nexus_5X_API_23 -netdelay gsm

El emulador es compatible con la limitación de la red (que limita el ancho de banda máximo de la red, también denominado modelado de la red), y con latencias de conexión más altas. Puedes definirlo mediante la configuración de interfaz o con las opciones ‑netspeed y -netdelay.

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


emulator @Nexus_5X_API_23 -netfast

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

-netspeed speed

Configura la emulación de velocidad de red. Especifica la carga de red máxima y las velocidades de descarga mediante unos 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 @Nexus_5X_API_23 -netspeed edge

El emulador es compatible con la limitación de la red (que limita el ancho de banda máximo de la red, también denominado modelado de la red), y con latencias de conexión más altas. Puedes definirlo mediante la configuración de la interfaz 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 @Nexus_5X_API_23 -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 a menudo son iguales a la especificación de -ports port,{port + 1}. {port + 1} debe estar libre y se reservará para adb. Si alguno de los puertos de la consola o 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 si seleccionas Help > About, podrás ver el número de puerto de adb.

Ten en cuenta que si el valor de port no es un número par y está dentro del rango de 5554 a 5584, el dispositivo virtual se iniciará pero no estará visible cuando uses el comando adb devices si el servidor de adb 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 usados para la consola y para adb. Por ejemplo:


emulator @Nexus_5X_API_23 -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 cuáles puertos y número de serie está usando el emulador, y advierte si hay problemas con los valores proporcionados.

Recomendamos usar la opción -port en su lugar, cuando sea posible. La opción -ports está disponible para configuraciones de red que requieren ajustes especiales.

Para obtener más información sobre cómo 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 @Nexus_5X_API_23 -tcpdump /path/dumpfile.cap

Usa la 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 @Nexus_5X_API_23 -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 Intel HAXM. Esta opción se omite si no se está emulando un dispositivo x86 o x86_64.

Los valores válidos de mode son:

  • auto: Determina automáticamente si la aceleración es compatible y la usa si es posible (valor predeterminado).
  • off: Inhabilita la aceleración por completo; resulta muy útil para 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.

Para obtener más información, consulta Cómo configurar la aceleración de hardware.

-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

Para obtener más información, consulta Cómo determinar si HAXM o KVM están instalados.

-engine engine

Especifica el motor del emulador:

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

Por ejemplo:


emulator @Nexus_5X_API_23 -engine auto

La detección automática debe seleccionar el valor que proporciona el mejor rendimiento cuando se emula un AVD determinado. Debes usar 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 @Nexus_5X_API_23 -gpu swiftshader_indirect

Para obtener más información, consulta Configurar la aceleración de gráficos en la línea de comandos.

-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 @Nexus_5X_API_23 -no-accel

Para obtener más información, consulta Cómo configurar la aceleración de hardware.

-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 @Nexus_5X_API_23 -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) como inhabilitado o en modo permisivo en un sistema operativo Linux. Por ejemplo:


me-linux$ emulator @Nexus_5X_API_23 -selinux permissive

De manera predeterminada, SELinux está en modo de aplicación forzosa. Esto significa que se aplica la política de seguridad. El modo permissive carga la política SELinux, pero no la aplica; simplemente registra las infracciones de seguridad. El modo disabled inhabilita la compatibilidad con el kernel para SELinux.

-timezone timezone

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


emulator @Nexus_5X_API_23 -timezone Europe/Paris

De forma predeterminada, el emulador usa la zona horaria de la computadora del desarrollador. Usa esta opción para especificar otra zona horaria, o si la detección automática no funciona correctamente. El valor de timezone debe estar en el 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 @Nexus_5X_API_23 -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 @Nexus_5X_API_23 -no-boot-anim

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

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


emulator @Nexus_5X_API_23 -screen no-touch

mode puede ser cualquiera de los valores siguientes:

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

Opciones avanzadas

Están disponibles las siguientes opciones de inicio de la línea de comandos, pero el desarrollador promedio de apps no las usa con frecuencia.

En las descripciones, el directorio de trabajo es el directorio actual del terminal donde se ingresan los comandos. Para obtener información sobre el directorio del sistema y el directorio de datos, y los archivos almacenados en ellos, consulta Descripción de los 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 de Android y las ejecutan en AVD específicos. Los desarrolladores de plataformas trabajan en el sistema Android y lo ejecutan en el emulador sin AVD ya creados; son miembros internos del equipo de Android, no desarrolladores externos de app.

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 @Nexus_5X_API_23 -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. Si no usas esta opción, el valor predeterminado es un archivo temporal denominado cache.img. Para obtener más información, consulta el directorio de datos de AVD.

Por ejemplo:


    emulator @Nexus_5X_API_23 -cache
       ~/.android/avd/Nexus_5X_API_23.avd/cache_persistent.img
    
-cache-size size

Configura el tamaño de la partición de la caché en MB. Si no especificas esta opción, el valor predeterminado es 66 MB. Por lo general, la mayoría de los desarrolladores de apps no necesitan esta opción, a menos que se descarguen archivos más grandes que la memoria caché predeterminada. Para obtener más información acerca del almacenamiento de archivos en caché, consulta el directorio de datos de AVD.

Por ejemplo:


emulator @Nexus_5X_API_23 -cache-size 1000
-data filepath

Configura el archivo de imagen de partición de datos del usuario. Proporciona un nombre de archivo y una ruta absoluta o 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 de usuario después del apagado. Si no usas esta opción, el valor predeterminado es un archivo denominado userdata-qemu.img. Para obtener más información sobre el archivo de datos del usuario, consulta el directorio de datos de AVD.

Por ejemplo:


emulator @Nexus_5X_API_23 -data
       ~/.android/avd/Nexus_5X_API_23.avd/userdata-test.img
-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 @Nexus_5X_API_23 -datadir
       ~/.android/avd/Nexus_5X_API_23.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 @Nexus_5X_API_23 -force-32bit
-help-disk-images

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


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

Permite obtener ayuda sobre las especificaciones de caracteres de device. 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 aplicaciones. Explica dónde se encuentran los archivos de imagen para un AVD creado con las herramientas de 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 absoluta o una ruta relativa al directorio de trabajo. 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.

Por ejemplo:


emulator @Nexus_5X_API_23 -initdata
       ~/Library/Android/sdk/system-images/android-23/
       google_apis/x86/userdata-test.img
-kernel filepath

Usa un kernel emulado específico. Si no especificas una ruta de acceso, el emulador buscará en el directorio del sistema. Si no especificas esta opción, el valor predeterminado es kernel-ranchu. Para obtener más información, consulta el directorio del sistema de AVD. Usa la opción ‑show‑kernel para ver los mensajes de depuración del kernel.

Por ejemplo:


    emulator @Nexus_5X_API_23 -kernel
       ~/Library/Android/sdk/system-images/android-23/
       google_apis/x86/kernel-test.img -show-kernel
-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, puedes usar 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 @Nexus_5X_API_23 -noaudio
-nocache
-no-cache

Inicia el emulador sin una partición de caché. Si no usas esta opción, el valor predeterminado es un archivo temporal denominado 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 @Nexus_5X_API_23 -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 @Nexus_5X_API_23 -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 @Nexus_5X_API_23 -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 @Nexus_5X_API_23 -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 @Nexus_5X_API_23 -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 @Nexus_5X_API_23 -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. Aún podrás acceder al emulador a través de adb o de la consola. Por ejemplo:


emulator @Nexus_5X_API_23 -no-window
-partition-size size

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


emulator @Nexus_5X_API_23 -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 de al menos 32 caracteres, sin espacios, y value debe ser una string de al menos 92 caracteres. Puedes especificar varias opciones de ‑prop en una línea de comando. Esta opción puede ser útil para la depuración. Por ejemplo:


    emulator @Nexus_5X_API_23 -prop status.battery.level_raw=80
       -prop ro.serialno=123456
    
-qemu args Transmite argumentos al software del emulador de QEMU. Ten en cuenta que QEMU 1 y QEMU 2 pueden usar diferentes argumentos. 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 inicio de ramdisk. Especifica el nombre de archivo y una ruta absoluta o una ruta relativa al directorio de trabajo. Si no usas esta opción, el valor predeterminado es el archivo ramdisk.img en el directorio del sistema. Para obtener más información, consulta el directorio del sistema de AVD.

Por ejemplo:


emulator @Nexus_5X_API_23 -ramdisk
       ~/Library/Android/sdk/system-images/android-23/
       google_apis/x86/ramdisk-test.img
-report-console socket

Informa el puerto de la consola a un tercero remoto antes de iniciar la emulación. Puede ser útil para un script de prueba automatizado. socket debe usar uno de los formatos siguientes:

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

Para obtener más información, usa la opción -help-report-console, como se describe en Cómo obtener ayuda detallada para una opción específica.

-shell

Crea una consola de shell raíz en el terminal actual. Se diferencia del comando adb shell de las siguientes maneras:

  • Crea un shell raíz que permite modificar muchas partes del sistema.
  • Funciona incluso si está dañado el daemon adb en el sistema emulado.
  • Si se presiona Ctrl + C (⌘C), se detiene el emulador, en lugar del shell.

Por ejemplo:


emulator @Nexus_5X_API_23 -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 @Nexus_5X_API_23 -snapshot snapshot2
    

Es importante recordar que, en el proceso de carga de una instantánea, todo el contenido del sistema, los datos del usuario y las imágenes de la tarjeta SD se reemplazan 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 mediante el comando avd snapshot save name. Para obtener más información, consulta Cómo enviar comandos de la consola del emulador a un dispositivo virtual.

-snapshot-list

Muestra la 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 muestra una tabla de las instantáneas almacenadas en el archivo.

Por ejemplo:


    emulator @Nexus_5X_API_23 -snapshot-list -snapstorage
       ~/.android/avd/Nexus_5X_API_23.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 contiene todas las instantáneas de estado. Todas las instantáneas tomadas durante la ejecución se guardarán en este archivo y solo se podrán restaurar las instantáneas de este archivo durante la ejecución del emulador. Si no especificas esta opción, el valor predeterminado es snapshots.img en el directorio de datos. Si el archivo especificado no existe, se inicia el emulador, pero sin compatibilidad para guardar o cargar las instantáneas de estado.

Por ejemplo:


    emulator @Nexus_5X_API_23 -snapstorage
       ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
    
-sysdir dir

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


emulator @Nexus_5X_API_23 -sysdir
       ~/Library/Android/sdk/system-images/android-23/
       google_apis/x86/test
-system filepath

Especifica un archivo de sistema inicial. Proporciona el nombre de archivo y una ruta absoluta o una ruta relativa al directorio de trabajo. Si no se usa esta opción, el valor predeterminado es el archivo system.img en el directorio del sistema. Para obtener más información, consulta el directorio del sistema de AVD. Por ejemplo:


emulator @Nexus_5X_API_23 -system
       ~/Library/Android/sdk/system-images/android-23/
       google_apis/x86/system-test.img
-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, aunque no siempre funciona. De forma alternativa, puedes configurar la variable de entorno ANDROID_EMULATOR_USE_SYSTEM_LIBS en 1.

Por ejemplo:


me-linux$ emulator @Nexus_5X_API_23 -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 (está montado como solo lectura de forma predeterminada).

Ten en cuenta que el uso de esta marca creará una copia temporal de la imagen del sistema que puede ser muy grande (varios 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. En la siguiente sección, se proporciona información más detallada sobre las opciones de línea de comandos del emulador que se usan con frecuencia y están disponibles cuando se inicia 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 comando siguiente:

emulator -help
    

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

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

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

Para obtener ayuda detallada para todas las opciones del emulador, ingresa el comando siguiente:

emulator -help-all
    

Cómo visualizar variables de entorno del emulador

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

emulator -help-environment
    

Puedes configurar variables de entorno en la ventana del terminal antes de lanzar un dispositivo virtual, o puedes hacerlo mediante los ajustes del usuario en el sistema operativo; por ejemplo, en el archivo .bashrc de Linux.

Cómo visualizar las etiquetas de depuración

Para mostrar una lista de etiquetas para las opciones de -debug, ingresa el comando siguiente:

emulator -help-debug-tags
    

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