Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Notas de la versión del emulador

Android Emulator se incluye con Android Studio.

Se distribuyeron versiones del emulador anteriores a la versión 25.3.0 como parte de las herramientas del SDK de Android.

Para asegurarte de tener la última versión, consulta SDK Manager a fin de obtener actualizaciones.

Para obtener las versiones de Android Emulator anteriores a la versión 25.3.0, consulta las notas de la versión de las herramientas del SDK de Android.

Para obtener más información sobre las correcciones de errores de cada versión, consulta el blog de actualizaciones de la versión de Android Studio.

30.0.0 (19 de febrero de 2020)

Esta actualización incluye imágenes de sistema de Android 11 (API nivel 30) y un rendimiento mejorado cuando se ejecutan objetos binarios de ARM.

Imágenes del sistema de Android 11

Ahora puedes crear un AVD que ejecute Android 11. Para ello, selecciona cualquiera de las imágenes de sistema de API nivel 30 disponibles:

  • x86: Incluye ABI x86 y ARMv7.
  • x86_64: Incluye ABI x86, x86_64, ARMv7 y ARM64.

Compatibilidad con los objetos binarios de ARM en las imágenes del sistema de Android 9 y 11

Si antes no podías usar Android Emulator porque tu app dependía de objetos binarios de ARM, ahora puedes usar la imagen del sistema de Android 9 x86 o cualquier imagen del sistema de Android 11 para descargarla. Ya no es necesario descargar una imagen del sistema específica a fin de ejecutar objetos binarios de ARM. Estas imágenes del sistema de Android 9 y Android 11 admiten ARM de forma predeterminada y proporcionan un rendimiento significativamente mejor en comparación con las que tienen una emulación ARM completa.

Problemas conocidos

  • Algunos objetos binarios de ARMv7 no se ejecutan en las imágenes del sistema de Android 11 x86 y x86_64. Cuando orientes apps a Android 11, considera compilar para ARM64.

29.0.11 (29 de mayo de 2019)

Esta actualización incluye las siguientes mejoras y correcciones:

  • Windows: El emulador ahora se basa en la DLL libgcc que enviamos, en lugar de compilarse con libgcc de manera estática.
  • Linux: Se agregó compatibilidad con logcat a la API de gRPC. Para obtener más información sobre gRPC, consulta el emulador de transmisión gRPC (Linux).
  • El emulador ahora incluye una compilación sin interfaz gráfica para invitados x86 de 32 bits (qemu-system-i386). Esta función habilita las imágenes x86 de 32 bits para que la API nivel 26 y las versiones anteriores se ejecuten con la compilación sin interfaz gráfica. Ten en cuenta que, para los invitados x86 de 32 bits con API 27 y versiones posteriores, el emulador usa el motor de 64 bits (qemu-system-x86_64) porque en estas imágenes del sistema el espacio de usuario es de 32 bits y el kernel es de 64 bits. Android Studio usa el kernel para seleccionar motores de emulación.
  • Ahora puedes especificar rutas de biblioteca de Qt personalizadas con la variable de entorno ANDROID_QT_LIB_PATH.
  • Ahora puedes ejecutar el emulador con los objetos binarios anteriores que usan QEMU1 si los archivos ejecutables de QEMU1 (emulator[64]-[x86|arm|etc]) están ubicados en el directorio del emulador.
  • Windows: Se solucionó un problema que a veces podía provocar que el emulador no comenzara con el mensaje "solicitud de apagado de CPU virtual".
  • Se solucionó un problema relacionado con una barrera de canalización innecesaria en las texturas comprimidas emuladas en Vulkan.
  • Se corrigió un error que ocurría con las solicitudes de proxy http cuando se usaba la codificación de transferencia fragmentada. Para obtener más información, consulta los detalles de confirmación.

29.0.9 (7 de mayo de 2019)

Esta actualización incluye la siguiente corrección:

  • Windows: Se solucionó un problema en el que la cámara de escena virtual y la cámara web no funcionaban en el emulador.

29.0.8 (6 de mayo de 2019)

Esta actualización incluye las siguientes mejoras y correcciones:

  • Se agregó compatibilidad con varias pantallas de hardware virtual cuando hay un servicio de invitado para enumerar y configurar cada una. Se incluirán varias pantallas de hardware virtual en una actualización futura de imagen del sistema emulador.
  • Se agregó una nueva opción de línea de comandos: -delay-adb. Esta opción suprime el procesamiento de los paquetes de ADB hasta que el invitado complete el inicio (de un arranque en frío). Esta opción ayuda a resolver problemas que pueden ocurrir si usas el emulador en un entorno de IC que reinicia el emulador y usa DDMS al mismo tiempo.
  • Se corrigió un error que se producía cuando se cargaban las instantáneas, en las que glIsRenderbuffer mostraba el valor incorrecto.
  • Se corrigieron algunos problemas con el estado inactivo cuando se reinicia el invitado de Android.
  • Windows: Se corrigieron problemas que impedían que el emulador se iniciara cuando el nombre de usuario de Windows tenía caracteres o espacios no ASCII.

Problemas conocidos

  • La IU de instantáneas está inhabilitada para las imágenes del sistema automotor porque las instantáneas no son compatibles con esas imágenes del sistema en la actualidad.

29.0.6 (1 de mayo de 2019)

Esta actualización incluye varias funciones nuevas, mejoras de otras existentes y correcciones de errores.

Eliminación de QEMU1 y compatibilidad con Windows de 32 bits

Para lograr un mejor mantenimiento del emulador, ya no enviamos QEMU1 ni los objetos binarios de Windows de 32 bits. Si usas esa versión de Windows, no podrás actualizar a 29.0.6.

Requisitos para las imágenes de sistema de Android Q

Si deseas ejecutar un AVD que usa una imagen de sistema de Android Q, ahora debes usar la versión 29.0.6 (esta versión) o superior.

Mejoras de Project Marble

Esta actualización continúa nuestro trabajo en la iniciativa Project Marble, que se presentó en la Android Developer Summit en noviembre de 2018. Para obtener más información sobre otras mejoras de Project Marble en versiones anteriores, consulta Android Emulator: Mejoras de Project Marble.

Para esta actualización, la mayoría de nuestros esfuerzos relacionados con Project Marble se concentraron en reducir el uso de recursos del emulador, como el uso de la CPU del emulador mientras el emulador está inactivo. Además, incluimos cambios que facilitan el trabajo con el emulador en una variedad más amplia de entornos y abordamos problemas de calidad generales.

En las siguientes secciones, se describen las mejoras de Project Marble que se incluyen con esta actualización:

Mejoras del comportamiento del audio del host

A partir de la versión 28.0.3, el emulador bloquea la entrada de audio del host de forma predeterminada.

Si deseas usar los datos de audio del host, puedes habilitar esa opción yendo a Extended Controls > Microphone y habilitar la opción Virtual microphone uses host audio input. Esta opción se inhabilita automáticamente cada vez que se reinicia el emulador.

Si usas la línea de comandos, también puedes habilitar el audio del host con la opción -allow-host-audio y puedes usar los siguientes comandos ADB para activar o desactivar los datos de audio del host, respectivamente:

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Mejoras para compilaciones de emulador sin interfaz gráfica

A partir de la versión 28.0.25, el emulador incluye una opción de compilación sin interfaz gráfica que puede ejecutarse sin la IU. Puedes usar compilaciones sin interfaz gráfica a fin de configurar el emulador para flujos de trabajo de integración continua (IC) y Docker.

Con esta actualización, realizamos mejoras adicionales para permitir que el emulador se ejecute con una cantidad mínima de dependencias. En Linux, las compilaciones sin interfaz gráfica ya no incluyen las bibliotecas pulseaudio ni libX11. En la siguiente lista, se incluyen las bibliotecas compartidas dependientes del sistema que no están empaquetadas con el emulador:

  • Linux-vdso.so.1
  • Libutil.so.1
  • Libm.so.6
  • Libdl.so.2
  • Librt.so.1
  • Libpthread.so.0
  • Libgcc_s.so.1
  • Libc.so.6
  • ld-linux-x86-64.so.2

Bibliotecas de IU de la versión Qt actualizadas a 5.12 LTS

Esta actualización incluye las siguientes mejoras de la versión Qt 5.12 LTS:

  • Para evitar bloqueos en la decodificación libpng de Qt al iniciar algunas imágenes de sistema, el emulador ahora usa su propia copia de libpng a fin de decodificar imágenes PNG.
  • Para solucionar problemas relacionados con algunas instalaciones de Linux que contienen versiones incompatibles de algunas bibliotecas dependientes de Qt, ahora empaquetamos libfreetype, libsoftokn, libsqlite3 y libxkbcommon con el emulador.
  • El emulador ahora usa las bibliotecas de ventanas nativas de la plataforma para obtener las dimensiones del monitor, en lugar de usar las bibliotecas de Qt que mostraron resultados poco confiables.

Optimizaciones automáticas de la CPU después del inicio en frío

Para abordar el uso de la CPU, el emulador ahora ejecuta los siguientes comandos ADB durante el inicio en frío después de recibir una señal de boot complete:

adb shell settings put screen_off_timeout 214783647
Este comando aumenta el tiempo de espera con la pantalla apagada para que el emulador se pueda usar con la batería mientras no se está cargando. En modo de batería, se reduce considerablemente el uso de la CPU en segundo plano.
En el modo de carga de CA, las operaciones en segundo plano de GMSCore, como las actualizaciones de apps, pueden vulnerar todos los núcleos de la CPU del dispositivo (y, por extensión, la máquina del usuario) sin previo aviso.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
Este comando revoca los permisos del micrófono para la app de la Búsqueda de Google, lo que reduce en gran medida el uso de la CPU en segundo plano en la pantalla principal y en el selector cuando está activa la app de la Búsqueda de Google.
Este comando se ejecuta como complemento del comportamiento predeterminado del emulador de inhabilitar el audio del host. Además, esto mitiga automáticamente el uso de la CPU descrito para la detección de palabras clave de la versión 28.0.23.

Nuevas variables de entorno para la supervisión del rendimiento

Ahora puedes usar dos nuevas variables de entorno para permitir una supervisión detallada del rendimiento y el uso de recursos del emulador.

SHOW_PERF_STATS=1
Esta variable de entorno permite el seguimiento del uso de la CPU y la memoria RAM. El seguimiento del uso de la memoria RAM distingue entre el uso de gráficos y la memoria residente total.
ANDROID_EMU_TRACING=1
Esta variable de entorno habilita la impresión cada vez que una operación de entrada o de gráficos tarda mucho tiempo (más de 1 ms).
También usamos esta variable de entorno para ayudar a diagnosticar problemas relacionados con bloqueos (disminución de fotogramas) que los usuarios de Windows informaron con mayor frecuencia que los de macOS o Linux.

Mejoras generales de Project Marble

Esta actualización también incluye las siguientes mejoras generales que forman parte de la iniciativa Project Marble:

  • Ahora puedes pausar inmediatamente todas las CPU virtuales en el emulador mediante los siguientes comandos de la consola:
    • adb emu avd pause
    • adb emu avd resume
  • Se redujo en gran medida la sobrecarga de dibujos en OpenGL. Esta mejora reduce el uso de la CPU mientras el emulador reproduce animaciones.
  • Se restableció la asistencia para el dispositivo de red virtual e1000 del QEMU de línea principal. Puedes usar este dispositivo para configurar el emulador en un entorno de red compartido, donde el emulador se muestra en la red del host y esta se muestra en el emulador.
  • Los objetos binarios de BIOS apropiados para QEMU 2.12 ahora se utilizan para iniciar el emulador.
  • Se actualizó la versión de ffmpeg a 3.4.5 para codificación y decodificación de video.
  • Se redujo de manera considerable la sobrecarga de E/S del bucle principal de QEMU en macOS reemplazando el bucle principal basado en select() por uno basado en kqueue.
  • Se aumentó el tamaño del búfer logcat a 2 MB para resolver problemas de inestabilidad inesperada de EOF cuando se ejecuta logcat con el emulador.
  • El emulador ahora exporta la variable de entorno LC_ALL=C de forma predeterminada. Este cambio resuelve fallas y problemas de incompatibilidad asociados con la ejecución del emulador en diferentes configuraciones regionales.
  • Ahora puedes rastrear el uso de la CPU y la memoria RAM del emulador utilizando estadísticas de rendimiento a las que puedes acceder desde Extended Controls > Settings > Advanced > Performance Stats. Usa estas estadísticas para diagnosticar rápidamente problemas si el emulador parece hacer un uso excesivo de la CPU o la memoria RAM.
  • glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE ahora usa el resultado de la GPU del host en lugar de uno emulado. Este cambio ayuda a solucionar problemas relacionados con la imposibilidad de mostrar imágenes y elementos debido a un formato de lectura incorrecto.
  • Se agregó compatibilidad con las extensiones GL_EXT_texture_format_BGRA8888 y GL_APPLE_texture_format_BGRA8888 de OpenGL ES si esas extensiones son compatibles con el host.
  • Se agregó más información de diagnóstico a la IU del informe de errores. Además, puedes acceder a estos informes desde la consola mediante los siguientes comandos:
    • telnet localhost 5554
    • avd bugreport
  • En las imágenes de sistema de Android Q, el emulador aumenta su tamaño mínimo de RAM a 2 GB.
  • Se agregó mayor capacidad de impresión y registro cada vez que OpenGL o el hipervisor no se inicializan.
  • Si el emulador no puede iniciar una instancia -read-only concurrente de un AVD, ahora intenta reiniciar el AVD -read-only 3 veces más en 3 segundos. Este cambio aumenta la probabilidad de que el emulador inicie instancias -read-only concurrentes de un AVD si otras instancias de ese AVD que admiten escritura no terminaron de borrar los archivos inactivos.
  • Para las próximas imágenes de sistema, el emulador será compatible con Hardware Composer 2.0. Este cambio debería reducir la sobrecarga del controlador cuando se ejecutan la mayoría de las animaciones.
  • La compilación del emulador ahora se basa en CMake/Ninja.
  • En la IU de los controles extendidos del emulador, se restauraron las líneas divisorias de la tabla de combinación de teclas.
  • Ahora los usuarios pueden optar por proporcionar a nuestro equipo métricas de uso de la CPU y la memoria RAM en un intervalo de 10 segundos. Usamos esas métricas para enriquecer nuestros datos sobre el uso de recursos del emulador con diferentes casos prácticos de los usuarios, lo que nos permite hacer que el emulador sea más eficiente y receptivo.

Correcciones generales de Project Marble

Esta actualización también incluye las siguientes correcciones generales que forman parte de la iniciativa Project Marble:

  • Se corrigieron problemas de fotogramas incorrectos o que se movían y se mostraban en los sistemas con GPU de Intel al usar imágenes de sistema de Android Q.
  • Se corrigieron problemas en los que se mostraba una pantalla negra al usar imágenes de sistema de Android Q con skins de Pixel 2 XL (o cualquier otra que tuviera un recorte o esquinas redondeadas).
  • Se solucionó un problema en el que la opción de línea de comandos -partition-size no establecía el tamaño de la partición de datos.
  • Se solucionó un problema relacionado con el emulador de Linux en el que pulseaudio giraba y ocupaba un núcleo de CPU completo en algunas situaciones.
  • Se corrigieron problemas relacionados con el acceso a la memoria fuera de los límites al procesar texturas comprimidas.
  • Se corrigieron errores de GL que se producían en el host en glTexSubImage2D cuando se actualizaban ciertos búferes gralloc (con formato RGB 565, RGB10A2, RGB(A)16F).
  • Se solucionó un problema de visualización en las imágenes del sistema de Android Q con instantáneas, en las que la geometría del panel de notificaciones se procesaba con una configuración de divisor de instancias incorrecta.
  • Se corrigieron algunos problemas de bloqueos durante el inicio difíciles de reproducir que se producían debido a que Qt perdía señales o tenía un estado inestable e inconsistente en el inicio.
  • Se corrigieron varios problemas de simultaneidad. Ahora podemos compilar el emulador de Linux con ThreadSanitizer (TSAN), que puede descubrir fácilmente errores que de otro modo serían difíciles de reproducir.
  • Para usuarios de Linux: detectamos que, en algunos kernels de host, el kernel invitado de Android puede salir por error en KVM con un error de hardware genérico. Ahora, cuando esto suceda, el emulador utilizará el comando abort() para aumentar la capacidad de depuración (antes se bloqueaba).
  • Los usuarios de Linux, a fin de que sean más prácticas las configuraciones de IC, pueden usar la nueva opción de línea de comandos -stdouterr-file <file-name> para redireccionar stdout y stderr a un archivo.
  • Se solucionó un problema en el que se usaba incorrectamente SO_REUSEADDR. Para obtener más información, consulta los detalles de confirmación.
  • Se solucionó un problema recurrente del emulador de Windows en el que subprocesos, como los comandos ADB, no podían iniciarse si el nombre de usuario tenía espacios.
  • Se solucionó un problema de falta de inicialización de RCU en subprocesos de CPU virtuales HAXM. Es posible que esta solución resuelva algunos accidentes y condiciones de carrera.
  • Se corrigió una falla que se producía con algunos patrones de guardado y carga de instantáneas desde la IU cuando se usaban imágenes de sistema recientes de Android Q.
  • Se solucionó un problema en el que la cámara de escena virtual se ponía en blanco cuando se inicializaba el emulador desde una instantánea si se estaba reproduciendo una macro de RA cuando se guardaba esa instantánea.
  • Se solucionó un problema por el que algunos usuarios con configuraciones de escritorio remoto veían una pantalla negra al iniciar el emulador en Linux. Para evitarlo, el emulador ahora configura MESA_RGB_VISUAL de manera explícita. Para obtener más información, consulta los detalles de confirmación.
  • Se solucionó un problema en el que los botones de rotación aparecían en los AVD de TV.
  • Se solucionó un problema en el que, si el emulador se configuraba siempre en la parte superior, aparecía la ventana de controles extendidos cada vez que se rotaba el emulador.

Perfiles de hardware para dispositivos plegables

Ahora el emulador incluye perfiles de hardware para dispositivos plegables. Si quieres usar estos nuevos perfiles, debes usar Android Studio 3.5 Canary 10 o una versión posterior.

Puedes usar dos perfiles de hardware plegable para crear un AVD:

  • Plegable de 7.3 pulgadas: 1536 × 2152 desplegado; 4.6 pulgadas: 840 × 1960 plegado
  • Plegable de 8 pulgadas: 2200 × 2480 desplegado; 6.6 pulgadas: 1480 × 2480 plegado

Cuando ejecutas el emulador usando uno de estos perfiles de hardware, puedes plegar y desplegar el dispositivo mediante las acciones para plegar y desplegar de la barra de herramientas del emulador, los comandos de la consola o las siguientes combinaciones de teclas:

  • Plegar: Ctrl + F (Command + F en macOS)
  • Desplegar: Ctrl + U (Command + U en macOS)

Macros de RA

Ahora el emulador incluye macros que pueden ayudarte a probar acciones comunes de RA. Por ejemplo, puedes usar una macro para restablecer el estado predeterminado de todos los sensores del dispositivo.

Para obtener más información, consulta Cómo probar acciones comunes de RA con macros.

Compatibilidad con Vulkan (Windows y Linux)

Los usuarios de Windows y Linux ahora pueden probar las apps de Vulkan con Android Emulator hasta Vulkan 1.1 cuando usan una imagen de sistema compatible (Android Q Beta 3 o posterior para Vulkan 1.1, Android Q Beta 2 para Vulkan 1.0) y una GPU de host compatible (se incluye la mayoría de las GPU de Intel, NVIDIA y AMD de 2014 y versiones posteriores).

Para habilitar la compatibilidad con Vulkan, debes agregar las siguientes marcas de función a tu archivo ~/.android/advancedFeatures.ini (crea el archivo si no existe):

  • Vulkan = on
  • GLDirectMem = on

Compatibilidad inicial para desarrolladores de ROM

Los desarrolladores de ROM que compilan objetivos sdk_phone_x86 o sdk_phone_x86_64 (variantes userdebug, eng) en la rama AOSP master ahora pueden ejecutar un emulador compatible con Vulkan.

Esta compatibilidad aún es experimental y está pensada principalmente para desarrolladores que trabajan con imágenes de sistema, controladores y motores de juegos. Todavía faltan muchas extensiones. Sin embargo, la memoria HOST_COHERENT es compatible y ya deberías poder ejecutar las muestras del instructivo de la API de Vulkan.

Si usas Linux, puedes probar esto con los siguientes comandos:

    mkdir aosp-master
    cd aosp-master
    repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
    repo sync -c -j12
    . build/envsetup.sh
    lunch sdk_phone_x86_64-userdebug
    make -j12
    emulator -no-snapshot -feature Vulkan,GLDirectMem
    

Procesamiento de Skia con Vulkan

Las GPU de NVIDIA y AMD que son compatibles con Vulkan también admiten interoperabilidad de copia cero con OpenGL mediante la extensión GL_EXT_memory_objects. El emulador aprovecha esta capacidad para proporcionar una forma completa de procesar la interfaz de usuario de Android utilizando las API de Skia Vulkan.

Si tienes una GPU de NVIDIA o AMD compatible con Vulkan, usa los siguientes comandos para probar el procesamiento de Skia con una imagen de sistema compatible (Android Q Beta 3 y posterior):

    adb shell
    su
    setprop debug.hwui.renderer skiavk
    stop
    start
    

Compatibilidad de Vulkan con macOS

La compatibilidad con macOS todavía es experimental, pero el emulador ya incluye las API de Swiftshader, MoltenVK y libportability (gfx-rs), que puedes probar configurando las siguientes variables de entorno:

  • Swiftshader: ANDROID_EMU_VK_ICD=swiftshader
  • MoltenVK: ANDROID_EMU_VK_ICD=moltenvk
  • libportability: ANDROID_EMU_VK_ICD=portability

Problemas conocidos

En ocasiones, es posible que HAXM no mapee la memoria coherente de Vulkan al invitado y que apague el emulador. Este problema se abordará en una próxima actualización de HAXM.

Emulador de transmisión gRPC (Linux)

Trabajamos continuamente para aumentar lo máximo posible la versatilidad del emulador. Para ello, permitimos el procesamiento y la interacción de la GPU del host en la más amplia gama de contextos en ejecución. Nuestros usuarios de IC y escritorio remoto tienen los siguientes problemas recurrentes:

  • El envío programático de comandos de entrada al emulador implica ejecutar comandos del shell de adb que pueden experimentar una sobrecarga elevada, o usar la consola telnet, que es más rápida, aunque no funciona con todas las configuraciones de red.
  • Con frecuencia, los usuarios de IC ejecutan emuladores sin interfaz gráfica, lo que puede dificultar la detección de problemas para los que se necesita una pantalla visible o interactiva.
  • En general, los usuarios de escritorio remoto no pueden interactuar con el emulador cuando usan el procesamiento de GPU del host debido a que este procesamiento suele estar vinculado con las pantallas no virtuales del host.

Para solucionar este problema, cuando el emulador se ejecuta en una máquina Linux, ahora entrega un servicio de gRPC, un marco de trabajo para RPC que funciona con HTTP.

De forma predeterminada, el servicio de gRPC del emulador está inhabilitado, pero puedes activarlo con la siguiente opción de línea de comandos, donde <port> es el puerto en el que el emulador debe atender las solicitudes de gRPC (generalmente, 5556):

    -grpc <port>
    

Una vez que se inicia el servicio, los clientes pueden emitir comandos de gRPC. El conjunto actual de comandos permite enviar eventos de entrada y recibir capturas de pantalla. Estos comandos ayudan a resolver los siguientes problemas:

  • Los comandos de entrada se pueden enviar al emulador con una sobrecarga baja mediante HTTP, que también permite enviar comandos en configuraciones de red adicionales.
  • Se pueden enviar comandos de captura de pantalla para consultar la pantalla actual, incluso si el emulador se ejecuta sin interfaz gráfica. En cuanto a la interacción, los eventos de entrada también se pueden enviar de vuelta al emulador.
  • Los usuarios de escritorio remoto pueden ejecutar el emulador sin interfaz gráfica en la pantalla principal con procesamiento acelerado por GPU mientras usan gRPC para obtener capturas de pantalla y enviar eventos de entrada a fin de interactuar con el emulador.

Para obtener una lista completa de los comandos disponibles, consulta este protobuf.

Para ayudarte a comenzar a usar gRPC, proporcionamos algunos clientes de muestra que puedes consultar.

Actualmente, se incluyen las siguientes muestras:

  • Un servicio basado en Go que se puede utilizar para consultar estados del emulador.
  • Una app de React que demuestra interacción remota a través de capturas de pantalla y RPC de entrada. Esta muestra requiere protobuf versión 3.7.0 o posterior.
  • Una muestra de Python que consulta la configuración de VM del emulador y, luego, envía una serie de comandos.

28.0.25 (29 de marzo de 2019)

Esta actualización incluye las siguientes mejoras y correcciones:

Compilación del emulador sin interfaz gráfica

Ha sido difícil configurar el emulador con Docker y otros flujos de trabajo de integración continua (IC) debido a las expectativas implícitas de que el sistema pueda ser compatible con Qt y sus dependencias de biblioteca compartida (entre otros problemas).

Como primer paso para abordar este problema, incorporamos una variante del selector del emulador con ejecutables QEMU que no depende de Qt. En Linux, todavía hay un vínculo a libX11, pero esperamos quitarlo pronto también.

Para usar el emulador sin interfaz gráfica, ejecútalo desde la línea de comandos, como de costumbre, pero reemplaza la invocación binaria del emulador por emulator-headless. Para obtener más información, consulta la actualización de la versión Canary 28.1.8.

  • Se corrigieron problemas de fotogramas incorrectos o que se movían en las GPU de Intel cuando se ejecutaban imágenes de sistema de Android Q.
  • Se corrigieron problemas en los que se mostraba una pantalla negra al usar imágenes de sistema de Android Q con skins de Pixel 2 XL.
  • Ahora se usan los objetos binarios de BIOS más recientes para iniciar el emulador. Este cambio puede ayudar a reducir los errores de "solicitud de apagado de CPU virtual" que en ocasiones se producen cuando se inicia el emulador en Windows.
  • Se proporcionó un backport de una solución para el problema de "visualización incorrecta al reanudar las imágenes de sistema de Android Q desde una instantánea".
  • Los usuarios tenían problemas de emuladores "no autorizados" debido a un cambio incompatible en ADB en herramientas de plataforma 28.0.2. Ahora puedes usar ADB de forma segura desde herramientas de plataforma 28.0.2 con el emulador. Si tienes problemas con emuladores "no autorizados", sigue estos pasos para solucionarlos:
    1. Sal de todos los emuladores.
    2. Borra los archivos ~/.android/adbkey y ~/.android/adbkey.pub.
    3. Ejecuta el siguiente comando: adb kill-server
    4. Ejecuta el siguiente comando: adb devices
    5. Limpia los datos de AVD.
    6. Reinicia el emulador.

28.0.23 (29 de enero de 2019)

Esta actualización incluye las siguientes mejoras y correcciones:

Entrada de audio del host inhabilitada de forma predeterminada

Una publicación reciente de Reddit detallaba cómo el SO Android invitado usaba el audio del micrófono del host, lo que permitía que "Ok Google" funcionara inesperadamente. Queremos disculparnos al respecto y garantizar que trabajaremos con el equipo de Android para asegurarnos de que la detección de palabras clave también esté inhabilitada en la imagen del sistema.

Para solucionar este problema, realizamos los siguientes cambios:

  • Ahora se silencian de forma predeterminada los datos de audio del host real. Cuando el invitado usa el micrófono, no se transmite ningún sonido, en lugar del audio del host.
  • Si deseas usar los datos de audio del host, ahora puedes habilitar esa opción en Extended Controls > Microphone y habilitando la opción Virtual microphone uses host audio input. Se inhabilita automáticamente esta opción cada vez que se reinicia el emulador.

Actualizaciones sobre investigaciones relacionadas con el uso de la CPU

Durante nuestras investigaciones de Project Marble, notamos que, en general, el alto uso de la CPU en el emulador se puede clasificar en las siguientes tres categorías:

En estado inactivo: actualizaciones automáticas de apps en imágenes de Play Store

Detectamos que, a intervalos aleatorios, se actualizan todas las apps instaladas, incluso cuando el usuario no inició sesión. Durante el proceso, el uso de la CPU alcanza el número de núcleos x 100% (por lo general, aproximadamente 400%) en GMSCore y dex2oat. Para mitigar este problema, puedes inhabilitar las actualizaciones automáticas de apps en Play Store.

En estado inactivo: detección de palabras clave

Cuando estás en la pantalla principal y sin apps en primer plano, el uso de la CPU puede ser alto (cerca del 25% con picos de 50%). Esto se debe a la detección de palabras clave que constantemente hace ping con el host. No puedes mitigar este problema inhabilitando la entrada de audio del host porque el costo de la CPU se relaciona principalmente con el tiempo que se tarda en pasar del invitado al host. Sin embargo, puedes mitigar este problema revocando los permisos del micrófono en Google app.

En estado activo y, a veces, inactivo: animaciones

La tercera categoría de alto uso de la CPU son las animaciones. Descubrimos que, al optimizar la pila de controladores gráficos, también podemos reducir el uso de la CPU, incluso cuando no está inactivo el emulador. Implementaremos optimizaciones de controladores gráficos de forma incremental como parte de Project Marble.

28.0.22 (21 de diciembre de 2018)

Esta actualización incluye las siguientes mejoras y correcciones:

  • Se solucionó un problema recurrente por el cual, en algunas configuraciones, el emulador de Mac se reiniciaba o generaba un trastorno de pánico en el kernel al guardar Quickboot. (Problema 120951634).
  • Al usar un archivo mapeado, como la instantánea de RAM, el emulador ahora desmapea el mapeo de archivos explícitamente al salir.

28.0.20 (11 de diciembre de 2018)

Esta actualización incluye las siguientes mejoras y correcciones:

  • Se solucionó un problema en Windows en el que se bloqueaba el emulador al cargar instantáneas con ciertos modelos de GPU de Intel.
  • Se solucionó un problema que provocaba un estado unauthorized de dispositivo ADB cuando se usaba una ubicación ANDROID_SDK_HOME no estándar.
  • Se solucionó un problema en Windows en el que se bloqueaba el emulador al iniciar imágenes de sistema con la aceleración de CPU inhabilitada.
  • Se solucionó el problema de visualización debido a la pixelización del emulador. Ahora debería funcionar la disminución de resolución.
  • Se solucionó un problema en macOS 10.14+ mediante el que el control mouselook de la cámara de escena virtual se podía volver demasiado sensible debido a una interacción con la nueva configuración de seguridad de accesibilidad.
  • Se corrigió un error de cálculo de la zona horaria que podía hacer que la hora del reloj del emulador cambiara esporádicamente.
  • Se corrigieron errores de procesamiento en varias apps de los motores cocos2d y Unreal.
  • Se agregó en el emulador compatibilidad con Wi-Fi entre pares. Ahora pueden comunicarse entre sí dos emuladores directamente a través de Wi-Fi si usan la última imagen de Pie de Play Store. Para usar Wi-Fi entre pares, inicia dos AVD con los mismos argumentos -wifi-server-port y -wifi-client-port:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • Se agregó compatibilidad con más cámaras web en Windows. Para ello, se toman fotogramas incompatibles de cualquier tamaño y se cambia el tamaño dinámicamente para que se ajuste a la configuración de la cámara en el Android invitado.

28.0.16 (noviembre de 2018)

Esta actualización incluye varias funciones nuevas, mejoras de otras existentes y correcciones de errores.

Uso de recursos

El emulador ahora usa menos memoria RAM en general, especialmente cuando se usan imágenes de sistema con un nivel de API 28 o superior. Estas imágenes de sistema incluyen un uso mejorado de la memoria para los controladores gráficos del invitado.

Además, también mejoramos el uso de recursos en las siguientes áreas:

  • Se redujo el uso de la memoria del emulador durante las pruebas de larga duración. Si aún tienes problemas relacionados con el uso de memoria durante pruebas de larga duración, crea una entrada en el Registro de problemas que describa tu caso práctico.
  • Se redujo el uso de la CPU al ejecutar apps con animaciones.
  • Se solucionó un problema en el que podía filtrarse el contexto QEMU AIO en Windows.

Cómo ejecutar varias instancias de un solo AVD en simultáneo

Ahora puedes iniciar varias instancias del mismo AVD y ejecutarlas simultáneamente. Las instancias que inicies después de la primera instancia serán de solo lectura y los cambios que se apliquen en el disco virtual invitado se descartarán al salir.

Para ejecutar varias instancias del mismo AVD en simultáneo, inicia cualquier instancia después de la primera instancia desde la línea de comandos utilizando la marca -read-only.

Para poder usar esta función, es necesario copiar los archivos QCOW2 asociados con las partes de la imagen de Android que admiten escritura. Para ayudarte a administrar el espacio en disco, también incluimos la herramienta de línea de comandos qemu-img a fin de que puedas confirmar los archivos QCOW2 antes de iniciar varias instancias.

Además, cuando se usa en conjunto con la función de instantáneas de RAM de invitado respaldadas por archivos, varias instancias de AVD comparten la instantánea de inicio rápido de AVD como fuente común de RAM de invitado de copia en escritura. Esta propiedad indica que las instancias comparten gran parte de su RAM. Usa esta función para realizar pruebas que requieran la ejecución de varios dispositivos en paralelo.

Agradecemos tus comentarios sobre posibles casos prácticos que formen parte de tu flujo de trabajo interactivo o de CI normal. Informa errores o vota a favor de ellos en el Registro de problemas.

Instantáneas de RAM de invitado respaldadas por archivos

Al preasignar y mapear la RAM de invitado como un archivo, el emulador ahora puede guardar instantáneas de Quickboot durante el tiempo de ejecución, en lugar de hacer todo el trabajo al salir. Si actualmente demora mucho el guardado al cerrar los emuladores, habilita esta función para mejorar el rendimiento de Quickboot. De forma predeterminada, una instantánea de Quickboot se guarda al salir y se vuelve a cargar cada vez, como cuando se suspende y activa un dispositivo real.

Debido a que la RAM de invitado de Android ahora se guarda automáticamente de forma predeterminada, si quieres definir un estado del dispositivo y cargarlo de manera repetida con ese estado, debes configurar el emulador para que descarte los cambios después de cada sesión. Puedes hacerlo de las siguientes maneras:

  • Usa los marcadores -no-snapshot-save o -read-only cuando inicies el emulador desde la línea de comandos.
  • Ve a Extended Controls > Snapshots > Settings y configura Auto-save current state to Quickboot? en No.
  • Deberás reiniciar el emulador después de seleccionar esta opción. Si el emulador está configurado para guardar cambios automáticamente, puedes ejecutar el siguiente comando a fin de establecer un punto de control:
        adb emu avd snapshot remap 0
        
    Después de que ejecutes el comando, la instantánea de Quickboot del emulador permanecerá en ese punto de control. Vuelve a ejecutar el mismo comando para cargar el emulador desde tu punto de control.

Las instantáneas que se toman y cargan a través de la IU de instantáneas funcionan como antes, sin mapeo de archivos.

Debido a que este es un cambio importante en el funcionamiento de Quickboot, agradeceríamos mucho que nos envíes comentarios si notas mejoras en el rendimiento de Quickboot y sobre qué tipo de problemas encuentras al usarlo. Si tienes problemas, puedes inhabilitar esta función agregando la siguiente línea a tu archivo ~/.android/advancedFeatures.ini:

QuickbootFileBacked = off
    

Cuando inicias el emulador desde una instantánea (ya sea usando la opción de línea de comandos -snapshot o desde una instantánea en el administrador de AVD), el emulador inhabilita el guardado automático para las instantáneas de Quickboot y el guardado de las instantáneas de Quickboot al salir. Esto reduce las posibilidades de que se reemplace involuntariamente la instantánea de Quickboot y evita rutas de resguardo lentas que no utilizan instantáneas de Quickboot respaldadas por archivos.

QEMU 2.12

Reemplazamos nuestra variante de QEMU 2.9 por QEMU 2.12. Esta actualización incluye los siguientes cambios de QEMU:

Estos son algunos de los cambios notables que afectan a Android Emulator:

  • x86: gdbstub ahora proporciona acceso a registros de SSE.
  • Imágenes de disco: Se agregó el bloqueo de imágenes y se lo habilitó de forma predeterminada. No es posible escribir procesos múltiples de QEMU en la misma imagen, siempre que el host sea compatible con bloqueo de OFD o posix, a menos que se especifiquen otras opciones.
  • qemu-img: qemu-img resize admite la preasignación de las nuevas partes de la imagen.
  • La reducción de QCOW2 ahora es compatible con qemu y qemu-img.

Accesibilidad

  • Se corrigieron problemas relacionados con los lectores de pantalla y se agregó una mejor compatibilidad para estas herramientas en la IU de instantáneas y la grabación de pantalla.
  • Los íconos de notificación de inicio rápido ahora son más accesibles para los usuarios daltónicos.

Gráficos

  • Se corrigió un problema de acceso a la memoria fuera de los límites que se producía con los punteros de arreglo de Vertex en OpenGL ES.
  • Algunas GPU antiguas no eran compatibles con OpenGL 2.1 o versiones posteriores (lo que es obligatorio), o bien tenían otros problemas de confiabilidad. Estos errores pueden hacer que el emulador falle durante el inicio, se bloquee o quede inutilizable en la configuración predeterminada de la GPU. Ahora el emulador cambia automáticamente al procesador Swiftshader si detecta que están en uso estas GPU.
  • Se solucionó un problema que causaba que el emulador no publicara el búfer de fotogramas correcto si FBO != 0 estaba vinculado en el momento de eglSwapBuffers.
  • Se solucionó el problema mediante el que solo se mostraba la pantalla virtual de Android en la esquina superior izquierda. Creemos que esto se debía a variables de entorno de Qt mal configuradas. Ahora el emulador anula todas las variables de entorno relacionadas con el escalamiento de Qt.
  • Se solucionó un problema en el que fallaba el emulador en algunas situaciones al cargar apps de GLES1 desde una instantánea.
  • Se corrigieron los problemas de concurrencia en OpenGL y el subproceso de representación de inicio que podían provocar errores de liberación doble o datos dañados.
  • Android Emulator ahora es compatible con el soporte de textura comprimida ASTC LDR (GL_KHR_texture_compression_astc_ldr) para las imágenes de sistema que usan una API nivel 28 o una versión superior.
  • Ahora la mayoría de las GPU modernas deberían poder iniciar el emulador con OpenGL ES 3.x habilitado de forma predeterminada sin usar la marca de función GLESDynamicVersion.
  • Dejó de estar disponible -gpu guest (procesamiento de software en el invitado). Las imágenes del sistema para API nivel 28 o versiones superiores ahora usan automáticamente Swiftshader (-gpu swiftshader_indirect).
  • Si se inicia el emulador desde la línea de comandos con la marca -no-window, el procesador predeterminado será Swiftshader.

Ubicación

  • Ahora el emulador puede actualizar la orientación junto con la latitud y longitud. El sensor virtual del magnetómetro se ajusta dinámicamente al norte magnético cuando detecta movimiento al reproducir un archivo GPX o KML.
  • Ahora la velocidad del dispositivo se puede configurar en la página de ubicación.
  • Cuando se reproduce un archivo GPX o KML, se establece la velocidad automáticamente y vuelve a cero cuando finaliza la reproducción.
  • La altitud ya no se limita al rango de -1,000 a +10,000 m.
  • Se solucionó un problema en el que no se actualizaba con frecuencia la ubicación virtual del GPS, a menos que se abriera una vez, como mínimo, la ventana Extended Controls.

Cámara

En Windows, ahora se admiten más cámaras web porque el emulador cambia dinámicamente el tamaño de los encuadres de cámara que se toman de la cámara. Esta función también evita que los errores en el envío del encuadre provoquen el bloqueo del emulador.

Play Store

Para solucionar problemas relacionados con la falta de espacio en disco en las imágenes de Play Store, el emulador ahora cambia automáticamente el tamaño de la partición de datos del usuario a 6 GB cuando se ejecuta con un AVD de Play Store nuevo.

Mejoras y correcciones de calidad generales

  • Algunos usuarios informaron que el emulador funcionaba con lentitud. Identificamos una posible causa en la que el directorio temporal para el emulador termina con demasiados archivos inactivos. Como solución alternativa, el emulador ya no almacena archivos de verificación gestual de ADB en ese directorio. Sin embargo, también puede ser útil borrar el contenido de esa carpeta, que se encuentra en una de las siguientes ubicaciones, según el sistema operativo:
    • Windows: C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macOS o Linux: /tmp/android-<username>/*
  • Si no es posible iniciar el emulador debido a que no hay suficiente espacio libre en la memoria RAM, se muestra un mensaje de error. Si en Windows notas que hay espacio libre en la memoria RAM, pero aún no puedes iniciar el emulador, es posible que se haya superado el cargo de confirmación. Para obtener ayuda con este error, consulta la página de solución de problemas del emulador.
  • Ahora, la opción de línea de comandos -sysdir anula correctamente el directorio de imagen de sistema inferido.
  • El módem virtual ahora admite la consulta +MAI sobre la información de actividad del modelo.
  • Se corrigieron varios problemas relacionados con pérdidas de memoria, memorias dañadas y uso de CPU. Si experimentas fallas, pérdidas de memoria o cualquier otro uso elevado de recursos, crea una entrada en el Registro de problemas.
  • Se solucionó un problema que reapareció en macOS 10.14, por el cual el uso de auriculares Bluetooth con el emulador disminuía la calidad del audio a nivel global. Para solucionar este problema, el emulador ahora evita el uso de audio mediante Bluetooth cuando se ejecuta en macOS. (Problema 37070892)
  • Se solucionó un problema en Windows en el que el reloj del emulador no estaba en la zona horaria correcta.
  • Se solucionó el problema de lentitud del emulador y bloqueo en los sistemas Linux con discos duros giratorios (HDD).
  • Se corrigieron algunas advertencias de compilación que podían dañar la pila en macOS.
  • Se corrigieron problemas que podían producir informes engañosos sobre bloqueos.
  • Se solucionó un problema relacionado con la destrucción de conjuntos de subprocesos que podían provocar un bloqueo si no se creaba correctamente uno de los subprocesos.
  • Se corrigió un problema en macOS por el cual los cronómetros se volvían poco confiables, lo que provocaba bloqueos y otros comportamientos extraños. Si sientes que el emulador se bloquea en macOS, crea una entrada en el Registro de problemas.
  • Se solucionó un problema en el que, al cerrar el emulador, se inhabilitaba la IU, pero no se cerraba el emulador.
  • Se corrigieron problemas relacionados con fallas esporádicas, incluida una anulación causada por la apertura de demasiadas instancias de /dev/urandom.
  • Se solucionó un problema en el que no se iniciaba el emulador después de la primera vez si se forzaba el cierre de ADB.
  • Se quitó la compilación de MIPS. Si aún necesitas MIPS, crea una entrada en el Registro de problemas.
  • Se solucionó un problema mediante el que podían dañarse las conexiones ADB durante la carga de instantáneas.
  • Se solucionó un problema en el que la ventana del emulador tenía una imagen secundaria o teletransporte fuera de la pantalla cuando se reanudaba una instantánea, donde la orientación del dispositivo era diferente de la predeterminada del AVD.
  • Se solucionaron problemas relacionados con fallas al guardar instantáneas.
  • En Linux, los sistemas de archivos btrfs pueden causar demoras extremas debido a que el emulador guarda automáticamente las instantáneas y usa la copia en escritura para sus dispositivos de disco virtual. Recomendamos borrar el directorio ~/.android/avd y ejecutar el siguiente comando en el directorio ~/.android/avd vacío:
        chattr +C
        
    Así, se crean instantáneas nuevas en una carpeta en la que está inhabilitada la copia en escritura.

HAXM 7.3.2

Nos gustaría volver a referirnos a HAXM 7.3.2 porque se debe instalar para que las imágenes de sistema recientes se ejecuten correctamente en el emulador. HAXM 7.3.2 ya debería estar disponible en el canal estable y también se puede instalar manualmente desde https://github.com/intel/haxm/releases.

Estos son algunos de los problemas que se resolvieron en esta versión de HAXM:

  • Se corrigieron fallas aleatorias de sistemas operativos invitados que usan un kernel de Linux reciente (>= 4.6). Por ejemplo, Ubuntu 18.04 (# 39, # 74).
  • Se corrigió un error del emulador de instrucciones x86 que podía provocar fallas en el host (# 93).

Baja de Windows de 32 bits

Debido al poco uso y los altos costos de mantenimiento, planificamos dar de baja la versión de 32 bits de Android Emulator que se ejecuta en Windows. Antes de la eliminación, implementaremos un plan de transición y el final de la vida útil de la versión de 32 bits de Android Emulator. Sin embargo, estamos buscando activamente cualquier comentario o inquietud relacionados con este próximo cambio.

Cuéntanos en el Registro de problemas si aún confías en la versión de 32 bits de Android Emulator que se ejecuta en Windows y dinos cómo podemos ayudarte en el futuro.

27.3.10 (agosto de 2018)

Esta actualización incluye las siguientes correcciones de errores:

Corrección de la configuración de tamaño de la memoria RAM

Algunos usuarios informaron que el emulador funcionaba con lentitud. Identificamos una causa posible en la que el tamaño de la RAM de AVD en el archivo config.ini del AVD se estaba configurando incorrectamente.

Para solucionar este problema, el emulador aumenta el nivel mínimo de memoria RAM para las imágenes que usan API nivel 26 (o versiones superiores) a 1536 MB, que es el predeterminado de Android Studio. Si el archivo config.ini de tu AVD no incluye hw.ramSize en megabytes, crea una entrada en el Registro de problemas. Podrás encontrar el archivo config.ini en la siguiente ubicación:

~/.android/avd/<avdname>.avd/config.ini

27.3.9 (julio de 2018)

Esta actualización incluye las siguientes mejoras y correcciones de errores:

Mensajes de error mejorados para la plataforma del hipervisor de Windows

Algunos usuarios tenían dificultades para diagnosticar por qué no podía inicializarse la plataforma del hipervisor de Windows (WHPX) cuando activaban un emulador de WHPX. Para ayudarte a diagnosticar estos problemas, agregamos mensajes de error más informativos. Puedes habilitar estos mensajes ejecutando el emulador desde la línea de comandos con la marca -verbose.

Correcciones generales

  • Se corrigieron errores en OpenGL que se producían al cargar una instantánea en la app de la cámara.

27.3.8 (julio de 2018)

Esta actualización incluye varias funciones nuevas, mejoras de otras existentes y correcciones de errores.

Instantáneas

Ahora puedes guardar varias instantáneas de AVD para la configuración de un dispositivo determinado y elegir cuáles de las instantáneas guardadas deseas cargar al iniciar el emulador.

A partir de Android Studio 3.2 Canary 13, la configuración de cada dispositivo incluye un control en la configuración avanzada, en el diálogo Virtual Device Configuration, con el que puedes especificar qué instantánea de AVD cargar al iniciar el AVD.

Para incorporar esta expansión de las funciones de la instantánea, agregamos la categoría Snapshots al diálogo Extended Controls. Este nuevo panel incluye controles que permiten guardar y cargar instantáneas de AVD, incluidos controles para guardar y cargar la instantánea de inicio rápido que antes estaban en el panel Settings.

Puedes editar el nombre y la descripción de cada instantánea guardada.

Para obtener más información, consulta Instantáneas.

HAXM 7.2.0

Ahora HAXM 7.2.0 está disponible en todos los canales.

En esta actualización, se incluyen correcciones de errores y compatibilidad mejorada para grandes cantidades de RAM. Además, con esta actualización de HAXM y Emulator 27.3 y versiones posteriores, las instantáneas cargan sus contenidos en la RAM a pedido en lugar de cargar la instantánea completa cuando se inicia el dispositivo virtual. Este cambio debería disminuir en gran medida el tiempo necesario para cargar una instantánea.

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

27.2.9 (mayo de 2018)

Esta actualización incluye varias funciones nuevas, mejoras de otras existentes y correcciones de errores.

Grabación de pantalla

Ahora puedes grabar video y audio desde Android Emulator, así como guardar la grabación en un archivo WebM o GIF animado.

Los controles de grabación de pantalla se encuentran en la pestaña Screen Record de la ventana Extended Controls.

Sugerencia: también puedes abrir los controles de grabación de pantalla presionando Ctrl + mayúscula + R (Cmd + mayúscula + R en Mac).

Para comenzar la grabación de pantalla, haz clic en el botón Start recording, en la pestaña Screen record. Si quieres detener la grabación, haz clic en Stop recording.

Los controles que se usan para reproducir y guardar el video grabado se encuentran en la parte inferior de la pestaña Screen record. Para guardar el video, selecciona WebM o GIF en el menú de la parte inferior de la pestaña y haz clic en Save.

También puedes grabar y guardar una grabación de pantalla desde el emulador usando el siguiente comando en la línea de comandos:

adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm

Capturas de pantalla

Puedes tomar capturas de pantalla desde la línea de comandos con cualquiera de los siguientes comandos:

  • screenrecord screenshot [destination-directory]
  • adb emu screenrecord screenshot [destination-directory]

Las capturas de pantalla se guardan en formato PNG.

Cámara de escena virtual y ARCore

Desarrollar y probar apps de realidad aumentada (RA) con ARCore es aún más fácil con la nueva cámara de escena virtual, que te permite experimentar con la RA dentro de un entorno virtual.

Para obtener información sobre el uso de la cámara de escena virtual en el emulador, consulta Cómo ejecutar apps de RA en Android Emulator.

Imágenes de dispositivos Pixel en Google Play Store

Se habilitó Google Play Store para imágenes de dispositivos Pixel y Pixel 2. Esto se indica en el administrador de AVD en Android Studio 3.2 y versiones posteriores con el logotipo de Google Play en la columna Play Store. Los AVD en los que se habilitó Google Play Store tienen una pestaña de Google Play en el diálogo Extended controls que incluye un botón conveniente para actualizar los servicios de Google Play en el dispositivo.

Instantáneas

Ahora puedes cargar una instantánea de Quick Boot sin reiniciar el emulador. Para cargar una instantánea, abre la ventana Extended Controls en la página Settings y haz clic en el botón Load Now.

Implementamos muchas mejoras en la carga y el almacenamiento de instantáneas para aumentar la eficiencia en el uso de los recursos y minimizar el tiempo que toma cada operación. Si aún se demora inusualmente el guardado, infórmalo y proporciona detalles de tu CPU y memoria RAM, y sobre la configuración de cualquier software antivirus, firewall o de seguridad que se esté ejecutando.

Procesamiento con Skia

Al usar imágenes para API nivel 27 o versiones superiores, el emulador puede procesar la interfaz de usuario de Android con Skia, que a su vez puede realizar un procesamiento más fluido y eficiente.

Por ahora, es necesario que habilites explícitamente el uso de Skia.

Para habilitar el procesamiento con Skia, usa los siguientes comandos en el shell de adb:

      su
      setprop debug.hwui.renderer skiagl
      stop
      start
    

Cámara

En Windows, Android Emulator ahora usa Media Foundation como backend de la cámara web, lo que mejora enormemente el rendimiento y la velocidad de fotogramas para las capturas con la cámara web, hasta 30 FPS de 720 p.

En Mac, ahora puedes usar webcam0 y webcam1 juntas.

Varios

Se cambió la opción de línea de comandos -phone-number-prefix por -phone-number [number], lo que permite configurar el número de teléfono completo.

Ahora puedes usar direcciones de SMS alfanuméricas.

Correcciones

  • Se compiló la versión de Android Emulator para Linux utilizando una moderna cadena de herramientas C++ de Clang. Este cambio soluciona el problema en el que el emulador no se iniciaba debido a errores de libGL y libstdc++.
  • Se corrigieron varias causas de fallas y bloqueos.
  • Para evitar fallas y bloqueos causados por no tener suficiente espacio libre en el disco, el emulador ahora busca durante el inicio espacio libre suficiente en el disco y no se inicia si no hay al menos 2 GB libres.
  • Se solucionó un problema que impedía el procesamiento de algunos juegos de Unity.
  • Se solucionó el problema de DNS en el que el emulador no podía conectarse a la red.
  • Se solucionó un problema en el que no funcionaban los cambios en el almacenamiento interno asignado a un AVD mediante el diálogo Virtual Device Configuration.
  • Se solucionó un problema mediante el que se creaban y no se cerraban correctamente muchos procesos adb.
  • Se solucionó un problema en el que dejaban de responder los botones de rotación y otras partes de la IU, a menos que estuviera abierta la ventana Extended controls.
  • Se solucionó un problema en el que no se podía usar la función de copiar y pegar desde el host, a menos que se abriera al menos una vez el diálogo Extended controls.
  • Actualizamos el rectángulo de cambio de tamaño del emulador sin marco para que se adapte mejor el tema visual del emulador.
  • Ahora se desactivan correctamente el teléfono y los SMS cuando se habilita el modo de avión.
  • Se solucionó un problema mediante el que se inhabilitaba la funcionalidad de red móvil y SMS después de cargar una instantánea.
  • Ya no recibirás mensajes de advertencia falsos que digan “Unable to open... \pstore.bin. Permission denied.”.
  • Se solucionó un problema en el que no se podía cambiar la posición del AVD en algunas pantallas de Mac.
  • Se solucionaron problemas relacionados con pantallas parpadeantes o en blanco en computadoras MacBook Pro nuevas al ejecutar AVD con skins de Pixel 2 XL.
  • Se solucionaron problemas relacionados con pantallas en blanco al cambiar al modo zoom cuando había un emulador sin marco activo.
  • Se solucionó un problema en el que se desincronizaban el skin del dispositivo y el contenido del emulador al acercar la pantalla.

Si aún experimentas otras inestabilidades o bloqueos, infórmalo.

27.1.12 (marzo de 2018)

Esta actualización incluye soluciones para los siguientes problemas:

  • Disminución de la calidad de audio Bluetooth tras iniciar el emulador (Problema 37095756).
  • Envío de las ubicaciones de un emulador a todos los emuladores (Problema 73450633).
  • Anulación de la ubicación del GPS establecida con la consola por valores establecidos mediante Extended Controls > Location en la interfaz gráfica de usuario (Problema 73471760).

Si aún experimentas otras inestabilidades o bloqueos, infórmalo.

Con esta actualización, una imagen de sistema actual y una versión preliminar de Android Studio, puedes usar Android Emulator para ejecutar apps de realidad aumentada creadas con ARCore. Para obtener instrucciones y más información sobre los requisitos, consulta Cómo ejecutar aplicaciones de RA en Android Emulator.

27.1.10 (febrero de 2018)

  • Resolución de captura de la cámara

    Ahora es posible capturar fotogramas de 720 p desde una cámara web conectada.

    Para funcionar con Android 8.1 (nivel de API 27) e imágenes de sistema superiores, la cámara web conectada debe tener la capacidad de capturar fotogramas de 720 p.

  • Correcciones

    • Se solucionó un problema en el que la captura de la cámara web a veces producía una imagen distorsionada o completamente verde.
    • Se corrigió un problema que mostraba el siguiente mensaje, incluso cuando no había ningún bloqueo real: "emulator: ERROR: detected a hanging thread 'Qt event loop'. No response for 15000 ms".

Si aún experimentas otras inestabilidades o bloqueos, infórmalo.

27.1.7 (febrero de 2018)

  • Ventana del emulador sin marco:

    De forma predeterminada, los emuladores con archivos de skins del dispositivo ahora se muestran en una ventana sin marco. Para ver el marco de la ventana, habilita Show window frame around device en el panel Settings de la ventana Extended Controls.

  • Mejoras de Quick Boot para que sea más eficiente trabajar con instantáneas de AVD:

    • Puedes guardar una instantánea de AVD en cualquier momento con el botón Save Now del panel Settings del diálogo Extended Controls.
    • El emulador reduce el tiempo que se tarda, en muchos casos, en guardar una instantánea. Para ello, solo guarda la diferencia entre el estado actual y la instantánea previamente guardada.

    Para obtener más información, consulta la documentación de Quick Boot.

  • Actualizamos el emulador para usar QEMU 2.9.

    Las siguientes son algunas de las mejoras más importantes:

    • E/S optimizadas y bloqueo de subprocesos de E/S más refinado para lograr un mayor rendimiento
    • Corrección de errores desde QEMU 2.8 (26.1.4)
    • Nueva implementación del backend de HAXM

    Consulta la lista completa de cambios en el registro de cambios de QEMU 2.9.

  • Implementación de Swiftshader conforme a OpenGL ES 3.0:

    Ahora el procesador Swiftshader del emulador se ajusta completamente a OpenGL ES 3.0. Para obtener más información sobre el procesador Swiftshader, consulta la sección Settings > Advanced de Extended Controls.

  • Correcciones

    • Se solucionó un problema en el que no funcionaba el uso compartido del portapapeles, a menos se desactivara y se volviera a activar la opción Enable clipboard sharing.
    • Se corrigió un bloqueo que se producía al usar el backend de procesamiento de Swiftshader con AVD de baja resolución.

27.0.5 (enero de 2018)

  • Ahora está inhabilitado de forma predeterminada ANGLE para el procesamiento en Windows.

    Si ANGLE funciona bien, puedes volver a habilitarlo con la marca de la línea de comandos -gpu angle_indirect. Otra opción es abrir la ventana Extended Controls, ir a Settings > Advanced y seleccionar ANGLE D3D11 para la configuración del procesador de OpenGL ES.

  • Se solucionó un problema en el que no era posible escribir una B mayúscula con mayúscula + B.

27.0.2 (diciembre de 2017)

  • Con la nueva función Quick Boot, el inicio del emulador es más rápido, ya que se basa en una instantánea de tu instancia AVD.

    La función Quick Boot está habilitada de forma predeterminada para todos los AVD. Si bien la primera vez que inicias un AVD debes realizar un inicio en frío (al igual que cuando enciendes un dispositivo), todos los inicios posteriores son rápidos y se restaura el estado del sistema en el que se cerró el emulador (al igual que cuando se activa un dispositivo).

    Si deseas controlar cuándo debe guardar una instantánea el emulador, abre la ventana Extended Controls del emulador y haz clic en Settings. Allí puedes seleccionar una de las siguientes configuraciones de Save quick boot state on exit:

    • Yes: Guarda siempre una instantánea de inicio rápido cuando se cierra el emulador. Es el valor predeterminado.
    • No: No guarda instantáneas de inicio rápido; realiza siempre un inicio en frío.
    • Ask: Pregunta si se desea guardar o no una instantánea de inicio rápido al cerrar el emulador.

    Tu elección se aplica solo al AVD abierto actualmente.

    Para obtener más información, consulta la documentación de Quick Boot.

  • Se agregó compatibilidad con Mac OpenGL ES 3 (para imágenes de sistema que usan el nivel de API 24 y superior, API de Google y la ABI x86).

  • Para lograr una mayor estabilidad en las aplicaciones de OpenGL ES 2 y versiones posteriores, el emulador ahora usa el perfil central de OpenGL (si está disponible).

  • Nuevas opciones para procesamiento con Swiftshader/ANGLE:

    • -gpu swiftshader_indirect: Variante más rápida y estable de Swiftshader que funciona con Quick Boot
    • -gpu angle_indirect (solo para Windows): Variante más estable de ANGLE D3D que también funciona con Quick Boot

    Las opciones -gpu swiftshader y -gpu angle más antiguas ahora son obsoletas. En la ventana "Extended Controls", las opciones "SwiftShader" y "ANGLE" para la configuración del procesador de OpenGL ES en Settings > Advanced ahora usan las variantes *_indirect.

  • También se realizaron otras correcciones de errores.

26.1.4 (agosto de 2017)

Esta es una versión secundaria con correcciones de errores y las siguientes mejoras en la configuración de la GPU:

  • Se habilitó la animación durante el inicio cuando se ejecuta en el procesador ANGLE.
  • Se inhabilitó GLES3 cuando se ejecuta en el procesador ANGLE.

26.1.3 (agosto de 2017)

Esta es una versión secundaria con correcciones de errores, mejoras de rendimiento y pequeños cambios de funciones.

  • Esta versión ahora es necesaria para usar las últimas imágenes de sistema de Android 8.0. Son compatibles con Treble e incluyen particiones vendor.img separadas.
  • Ya está disponible el nuevo HAXM 6.2.0 (consulta SDK Manager), que incluye las siguientes actualizaciones:
    • Uso mejorado de la memoria. El espacio de trabajo máximo de memoria que fija HAXM ya no es igual al tamaño de la memoria RAM del AVD; ahora, se pagina la memoria según demanda. Esto debería ayudar al emulador a funcionar de manera más confiable en máquinas con menos memoria RAM.
    • El emulador con HAXM 6.2.0 ahora se puede iniciar más rápido en macOS, ya que se omite una larga fase de inicialización.
  • Mejoras de configuración de la GPU
    • Se solucionaron problemas relacionados con pantallas negras durante el inicio cuando se realizaba el procesamiento de software del invitado. Para ello, se volvió al procesamiento de software del host con Swiftshader. Las últimas revisiones de las imágenes de sistema para API nivel 19 a nivel 25 con las API de Google deberían tener un procesamiento funcional del invitado.
    • Se solucionó un problema en el que se cambiaba el emulador a un procesador de software debido a la detección de la presencia de GPU de Intel más antiguas, pero el emulador se ejecutaba en una GPU discreta. Las GPU que usarán el procesamiento con ANGLE o Swiftshader se determinarán de la siguiente manera:
      • Las iGPU de Intel más antiguas tienen problemas con los controladores de OpenGL y ANGLE D3D. Los usuarios que tengan Intel HD Graphics 3xxx y versiones anteriores usarán Swiftshader.
      • Algunos usuarios informaron que no podían usar imágenes de API nivel 25 debido a un error en el que se detiene Pixel Launcher. Esto parece ser un problema de controlador en algunos modelos de Intel HD 4xxx. Por lo tanto, utilizarán ANGLE automáticamente.
    • Para obtener los mejores resultados con la emulación de GPU, recomendamos usar una GPU de NVIDIA o AMD discreta, o una de Intel más reciente (Iris, HD 5xxx, HD 5xx/6xx).
    • Se solucionó un problema en el que no se iniciaba el emulador (no se inicializaba la emulación de OpenGL) si se configuraba el AVD con hw.gpu.mode=host y se iniciaba el emulador en un cliente de escritorio remoto.
    • Se aclaró la advertencia "OpenGL ES API level (requires restart)"; se agregó una opción para pasar de la versión OpenGL ES 3 a OpenGL ES 2 si tienes problemas o debes realizar pruebas en niveles inferiores de API de OpenGL ES.
    • El procesador de Mesa es obsoleto; ahora hw.gpu.mode=mesa pasará automáticamente a usar Swiftshader en el host.
  • Mejoras para macOS:
    • El emulador ahora es totalmente compatible con macOS 10.13 High Sierra a través de Hypervisor.Framework o HAXM 6.2.0.
    • Hypervisor.Framework ahora está habilitado de forma predeterminada en macOS para imágenes x86 de 32 bits a fin de mejorar el rendimiento y la compatibilidad con ese sistema operativo. Si experimentas problemas específicos con Hypervisor.Framework, presenta un informe de error y agrega HVF = off a ~/.android/advancedFeatures.ini (crea este archivo si no existe).
    • Se solucionaron problemas de falta de conexión a Internet o fallas al adjuntar el depurador mientras se usa Hypervisor.Framework.
    • Para mejorar la compatibilidad y el rendimiento de las capturas de cámara web, se reemplazó la captura basada en QTKit por una capturada en búfer basada en AVFoundation.
  • Se agregó compatibilidad con Wi-Fi en algunas imágenes de sistema (actualmente solo el nivel de API 25). Hay un punto de acceso llamado "AndroidWifi" disponible y Android se conecta automáticamente a él. La compatibilidad con Wi-Fi se puede inhabilitar ejecutando el emulador con el parámetro de línea de comandos -feature -Wifi.
  • Algunos usuarios indicaron que les preocupaba que las imágenes de sistema de Play Store de tamaño fijo no tuvieran suficiente almacenamiento. Por lo tanto, lo aumentamos a 2 GB de forma predeterminada (en lugar de 800 MB).
  • Se agregó una combinación de teclas (Ctrl + mayúscula + U) para abrir la página de la IU de informe de errores directamente desde la página de configuración.
  • Se solucionó un problema en el que si se usaba una CPU más antigua con Intel x86 EPT, pero sin UG, no se iniciaba el emulador si había más de un núcleo configurado.
  • Se solucionó un problema en el que se detectaba incorrectamente HyperV si se ejecutaba el emulador en un hipervisor Xen.
  • Se solucionó un problema en el que el emulador fallaba al inicio en algunas configuraciones de Linux.

26.1.2 (julio de 2017)

Esta versión incluye nuevas funciones y mejoras de rendimiento.

  • Se agregó la capacidad de definir una configuración de proxy HTTP personalizada en los controles extendidos (haz clic en More y, luego, en Settings y en Proxy). De forma predeterminada, el emulador usa la configuración de proxy HTTP de Android Studio, pero en esta pantalla puedes definir una configuración manual de proxy.

  • Se agregó compatibilidad con VNC para GPU en modo invitado, a fin de que se pueda ver y controlar el emulador de forma remota. Por ejemplo, puedes iniciar el emulador y dejar que VNC escuche el puerto 5901 de la siguiente manera:

    1. Ejecuta emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. Abre un visor de VNC, como tightvnc, para establecer conexión con el puerto 5901.

      • Para utilizar el cliente integrado de uso compartido de pantalla de Mac, se requiere una contraseña de VNC al iniciar el emulador. Para establecer una contraseña, usa este comando:

        emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio

        Luego, ingresa change vnc password en la consola y escribe una contraseña.

    Actualmente, Android O no es compatible con el modo VNC.

  • Se agregó el botón File a bug en la pantalla de ayuda de controles extendidos (haz clic en More y, luego, en Help y en Emulator help). Al hacer clic en File a bug, se abre un diálogo en el que puedes ver los detalles del informe de error, como la captura de pantalla, la información de configuración del AVD y un registro del informe de error. Luego, puedes guardar el informe o informar problemas del emulador.

  • Se agregó un sensor de giroscopio al emulador y al panel de sensores virtuales. Para que funcione, se requiere una imagen de sistema compatible con el giroscopio (actualmente niveles de API 24 y 25).

  • Se agregó el DNS preferido por el host a la lista de DNS de Qemu en Windows, cuando varias interfaces de red virtual del host introducen múltiples direcciones DNS que no son funcionales para el emulador.

  • Se agregó compatibilidad experimental con macOS Hypervisor.Framework para imágenes x86 de 32 bits en macOS 10.10 y versiones posteriores a través de marcas de servidor, lo que debería mejorar el tiempo de inicio y el rendimiento.

    • Si tienes problemas con el hipervisor, agrega la línea HVF = off en ~/.android/advancedFeatures.ini.
  • OpenGL ES 3.x ahora está habilitado de forma predeterminada para las imágenes de sistema y las GPU host compatibles con OpenGL ES 3. Actualmente, solo los hosts de Android O (API nivel 26) y Windows/Linux son compatibles con OpenGL ES 3.

    • Si tienes problemas con OpenGL ES 3, agrega la línea GLESDynamicVersion = off en ~/.android/advancedFeatures.ini.
  • El emulador ahora usa FBO de OpenGL fuera de pantalla para todo el procesamiento, excepto la publicación final de la imagen de visualización, lo que debería ayudar a solucionar los problemas de coherencia de color en todas las plataformas.

  • Después de recopilar datos sobre problemas repentinos de demora del emulador, determinamos que el inconveniente puede deberse a alguna interacción entre los controladores de Intel OpenGL más antiguos y las actualizaciones de Windows. Por lo tanto, los usuarios que usan Intel HD 4000, 3000, 2000 (y GPU relacionadas) ahora tienen el procesamiento configurado de forma predeterminada para un procesador D3D (ANGLE) o Swiftshader (procesador de software).

26.0.0 (marzo de 2017)

Esta versión es compatible con el nivel 26 de API. También incluye una serie de mejoras de rendimiento y correcciones de errores.

Revisión menor 26.0.3 (mayo de 2017)

  • Agregamos marcas de función actualizables en línea para abordar rápidamente problemas derivados de configuraciones de hardware problemáticas. Esto permite a Google implementar correcciones y funciones que dependen de las configuraciones del usuario mediante la actualización de las marcas del servidor. Si tienes problemas con un hardware específico, infórmalos para que podamos investigar el asunto.
  • Nueva compatibilidad con entrada rotativa para imágenes de sistema de API nivel 25 de Android Wear. Para emular el dial de entrada rotativa en un dispositivo Wear, haz clic en la pestaña Rotary Input en la ventana extendida.
  • Ahora es posible cambiar el tamaño del diálogo Crash Reporting, y ya no se restablece la opción Ask sin entrada en When to send crash reports.
  • Para el emulador de 32 bits, ahora es necesario que el tamaño máximo de memoria RAM del AVD sea inferior o igual a 512 MB para evitar que el emulador se quede sin espacio en el espacio de direcciones virtuales de 2 GB.
  • Se agregó compatibilidad para rutas absolutas en las imágenes del emulador.
  • Se agregó una nueva pestaña en la ventana extendida para las imágenes de Google Play Store, en la que se incluye la versión de Servicios de Play y un botón para buscar actualizaciones de esa plataforma.
  • Se agregó un menú desplegable para seleccionar el procesador de OpenGL en la página de configuración del emulador. Si tienes problemas con el controlador de OpenGL en una máquina que ejecuta Windows, intenta usar las opciones ANGLE (D3D11) o ANGLE (D3D9) (requiere reinicio). Si tienes problemas con el controlador de OpenGL en una máquina que no ejecuta Windows, intenta usar el procesador de software Swiftshader (requiere reinicio).
  • Se solucionó una falla inusual que se producía al salir si el emulador recibía los comandos exit y minimize.
  • Se solucionó un problema de escalamiento al cambiar de pantalla en una máquina Mac (Problema 268296).
  • Se solucionó un problema en el que el emulador tomaba el 300% de la CPU y lo retenía después de reanudar la computadora host tras una suspensión o cuando el emulador estuvo funcionando durante mucho tiempo.
  • Se solucionó una falla que se producía cuando se cerraba el emulador.

Actualizaciones implementadas con HAXM v6.1.1 (marzo de 2017)

Nota: HAXM v6.1.1 está disponible para usuarios de Mac a través de SDK Manager desde el 30 de marzo y pronto estará disponible para usuarios de Windows.

La versión 26.0.0 de Android Emulator es compatible con HAXM v6.1.1, que incluye las siguientes actualizaciones:

  • Se habilitó la emulación de unidades de supervisión de rendimiento (PMU) (Problema 223377).
  • Se solucionó el problema de coexistencia entre VirtualBox y Docker en Mac (Problema 197915).
  • Se revisó el mensaje de error de instalación que se mostraba cuando el instalador no podía detectar Intel VT-x en Windows, generalmente porque estaba habilitado Hyper-V.
  • Se agregó compatibilidad para acelerar Android Emulator en una VM de Windows basada en Hyper-V. Esta actualización requiere que la instancia host de Hyper-V (la que administra la máquina virtual o invitada de Windows) cuente con la última versión de Hyper-V y tenga habilitada la virtualización anidada. Hyper-V debe inhabilitarse en la instancia de Hyper-V invitada (la VM de Windows).

Dependencias

  • Revisión 25.0.4 o posterior de las herramientas de la plataforma del SDK de Android
  • Revisión 26.0.0 o posterior de las herramientas del SDK de Android

Nuevas funciones y correcciones de errores

  • Se agregó compatibilidad con API nivel 26.
  • Se agregó compatibilidad total con GLES 2.0. En una GPU host que tiene controladores de OpenGL de escritorio compatibles, el emulador ahora pasa el 100% de la lista mustpass de Android CTS dEQP-GLES2. Esto se lanzó para imágenes x86 de API nivel 24 (revisión 11 y versiones superiores) y pronto se incluirá para todas las imágenes de sistema.
  • Se mejoró el rendimiento de reproducción de video. El emulador ahora almacena todos los búferes de color de video en la memoria compartida de host/invitado y realiza la conversión final necesaria de YUV a RGB en la GPU. Ahora el valor 1080p30 debería estar al alcance de la mayoría de los sistemas. Esto se lanzó para imágenes x86 de API nivel 24 (revisión 11 y versiones superiores) y pronto se incluirá para todas las imágenes de sistema.
  • El emulador ahora cancela su registro correctamente en la lista adb devices al salir y cierra los puertos TCP abiertos en las máquinas Linux.
  • Las conexiones de adb ahora son más confiables. Un emulador en ejecución se detecta más rápido y ya no queda en estado "sin conexión" o "no autorizado".

25.3.0 (marzo de 2017)

A partir de esta versión, se lanzará Android Emulator por separado de las herramientas del SDK. Esta versión incluye varias mejoras de rendimiento, nuevas funciones y correcciones de errores.

Revisión menor 25.3.1 (marzo de 2017)

  • Se corrigió una falla que se producía en algunas configuraciones de GPU al inhabilitar GLAsyncSwap de forma predeterminada. Se agregó esta función en la revisión 25.3.0 para mejorar el intervalo de fotogramas y los fotogramas por segundo para juegos y videos, pero hace que el emulador falle en algunas configuraciones de máquina desconocidas. Se puede habilitar manualmente abriendo el archivo android_sdk/emulator/lib/advancedFeatures.ini y la configuración GLAsyncSwap = on.

Dependencias

  • Revisión 24 o posterior de las herramientas de la plataforma del SDK de Android
  • Revisión 25.3.0 de las herramientas del SDK de Android

Nuevas funciones y correcciones de errores

  • Se actualizó el motor de emulación a QEMU 2.7, y se incluyeron todas las correcciones de errores recientes, mejoras en el rendimiento y nuevas funciones.
  • Se agregó compatibilidad con IPv6.
  • El emulador ahora usa SwiftShader como procesador de software puro en el host.
  • Se realizaron mejoras en el rendimiento de Android Pipe, el principal canal de comunicación entre el emulador y el SO Android. Ahora es un orden de magnitud más rápido, tiene menor latencia y ofrece un mejor rendimiento multiproceso. Esto genera una serie de mejoras de rendimiento para el emulador, como las siguientes:
    • Mayor velocidad de inserción/extracción de ADB
    • Mejor compatibilidad con aceleración 3D
    • Mayor capacidad de respuesta general del emulador
    • Rendimiento gráfico mejorado
  • El emulador ahora usa búferes de la GPU (glBindBuffers/glBufferData) cuando el invitado los solicita, lo que disminuye la sobrecarga de la CPU en algunas apps.
  • Se mejoró la compatibilidad con audio.
  • E/S de disco más rápidas: el emulador ahora usa subprocesos separados para despachar E/S de disco, lo que produce una menor latencia y un mejor rendimiento (aproximadamente 1.5x de velocidad de E/S secuencial, y 5x de velocidad de E/S de acceso aleatorio). Esto también reduce la cantidad de descargas en el disco, lo que genera una carga de dispositivo físico mucho menor.
  • El emulador ahora usa archivos dispersos para inicios de disco en máquinas Windows, lo que permite acelerar tanto el primer inicio como el inicio para limpiar datos. Cuando se crea o se restablece un AVD, el emulador ahora escribe de 100 a 200 MB de datos en el disco, en lugar de 2 GB o más.
  • Se implementaron varias mejoras de la GUI:
    • El emulador ahora usa Qt 5.7.0, que incluye correcciones de errores y mejoras de rendimiento.
    • La inicialización de la IU ya no intenta cargar todos los ejecutables del emulador como complementos de Qt, por lo que es mucho más corta, especialmente en discos duros.
    • Las interacciones de la IU, incluidas la rotación, el cambio de tamaño de las ventanas y los controles extendidos de carga y cierre de las ventanas, ahora son más rápidas y fluidas.