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 versión más reciente, consulta SDK Manager para obtener actualizaciones.

Para descargar versiones anteriores de Android Emulator, consulta el archivo de descarga de Emulator.

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

Para obtener información sobre problemas conocidos y solucionar problemas, consulta Solución de problemas del emulador.

35.4.4 Canary (12 de diciembre de 2024)

Nuevo emulador de Android XR

Agregamos un nuevo emulador experimental de Android XR para desarrollar y probar apps compiladas con el SDK de Jetpack XR para visores. Consulta esta guía para obtener información sobre cómo instalar el emulador de Android XR y configurar tu entorno de desarrollo.

El emulador de Android XR es una herramienta experimental. Sin embargo, decidimos compartirla contigo con anticipación para que puedas probarla. Se esperan problemas, en especial en algunas configuraciones de GPU y controladores de Windows. También pueden surgir problemas relacionados con las pruebas de compatibilidad de las apps para dispositivos móviles 2D existentes. Tus comentarios nos ayudarán a mejorar y guiar la priorización de funciones en el futuro.

Hasta el momento, el emulador de Android XR se probó en las siguientes configuraciones de HW:

  • Mac (ARM)
  • Windows 11
    • GPU NVIDIA, 4 GB de VRAM, versión del controlador 553.35 o posterior
  • 16 GB de RAM o más
  • 8 núcleos o más

Errores conocidos

Emulador: Estabilidad y rendimiento:

  • En algunas configuraciones de Windows, pueden ocurrir bloqueos o fallas del sistema críticos durante el inicio o mientras se ejecutan aplicaciones. Asegúrate de que la plataforma del hipervisor de Windows (WHPX) esté habilitada. Para ello, sigue las instrucciones de la Guía para desarrolladores de Android Studio para habilitar WHPX.
  • Problemas como AVD o elementos de la IU que no responden en laptops después de un ciclo de suspensión y reanudación (como cerrar una laptop y abrirla)
  • Fallas ocasionales cuando se cambia de "modo de pantalla principal" a "modo de pantalla completa"
  • Las APIs de Gemini aún no están disponibles; la app de la plantilla de partida de la API de Gemini fallará.

Emulador: Simulación de entrada y salida:

  • Es posible que el teclado virtual para los campos de búsqueda y edición solo sea visible de forma parcial en el campo de visión.
  • No se pueden mover los elementos en la dirección z (dentro y fuera de la pantalla) con el mouse y el teclado.

  • La inestabilidad de la entrada de audio del host del micrófono del AVD puede provocar reinicios y fallas del AVD.

  • A veces, el sonido tiene estática o está distorsionado.

  • Cuando se mueve la cámara fuera de la sala de estar virtual, se pueden ver errores de renderización.

  • Las configuraciones de Windows muestran colores más oscuros de lo habitual.

  • El audio ya no funciona después de dejar el emulador inactivo y bloquear la pantalla en macOS. (Se restablecerá si reinicias el emulador).

  • La conexión de red se interrumpe cuando la máquina host cambia de Wi-Fi.

  • Con el bloqueo de mayúsculas activado, se siguen escribiendo letras minúsculas.

  • El desplazamiento con el panel táctil en Mac no es fluido.

  • Es posible que el desplazamiento con clic y arrastre en algunos elementos de la IU no funcione de forma predeterminada. De lo contrario, usa la rueda del mouse para desplazarte.

  • Texto y IU desenfocados, y otros errores en Chrome en algunas configuraciones del sistema de Windows Solución alternativa probable: Habilitar WHP.

Emulador: Simulación de planos y anclas:

  • A veces, las anclas no vuelven a aparecer cerca de la misma ubicación.
  • Es posible que los paneles móviles no se fijen a las paredes ni al techo.
  • Los planos simulados no coinciden con el diseño físico de la sala 3D en el modo de transferencia
  • Áreas limitadas generales para fijar objetos en la sala virtual
  • Pequeño artefacto visible en la vista de transferencia en Windows
  • En algunos casos, colocar anclas puede hacer que la app falle.
  • Es posible que aparezcan líneas negras en la parte superior de las apps cuando se las mueve cerca del suelo en Windows.

Emulador: Otros:

  • El emulador solo se inicia en el modo “independiente”. Aún no se admite el modo "Incorporado" (IU incorporada).
  • Acceder con cuentas en el emulador de Windows puede hacer que el emulador se cuelgue.
  • Es posible que el contenido de la IU de las ventanas desaparezca después de cambiar el tamaño (solución: presionar el botón "Inicio")
  • En la app de JXRCore ActivityPanelTest, el panel secundario no se muestra inicialmente.
  • Es posible que los elementos de la Configuración rápida desaparezcan de la configuración del sistema después de un período prolongado.
  • Es posible que la IU del emulador aparezca fuera de la región de la pantalla al principio. Si es así, ajusta ligeramente el tamaño de la ventana del emulador y debería volver a su lugar.
  • Es posible que el emulador no se inicie cuando se usa el Escritorio remoto de Chrome en Windows.
  • Hasta el momento, Open XR no es compatible con el emulador, y las apps de Open XR pueden hacer que el emulador falle.
  • Fallas poco frecuentes cuando se intentan enviar informes de errores a través de la configuración extendida de Android Studio en Windows
  • El ícono de "Navegar atrás" no se ve correctamente en la app de Configuración hasta que el cursor se coloca cerca de él en Mac.
  • En algunos casos, la compilación puede fallar cuando se usa el módulo "Perfil de Baseline" como parte de un proyecto de plantilla de XR.
  • Hasta el momento, la accesibilidad de "TalkBack para XR" solo está integrada parcialmente en el emulador.

App de Scene Viewer:

  • Mover elementos dentro del Visor de escenas puede provocar que falle. Para solucionar este problema, simplemente mueve la posición de la cabeza un poco desde su posición inicial (p.ej., con el paneo, el carrito, WASD, etc.) antes de intentar mover el elemento.
  • La función de tamaño real 1:1 no funcionará correctamente si el tamaño real del modelo 3D está por debajo o por encima de los límites mínimos y máximos de escala (actualmente establecidos en 20 cm y 70 m, respectivamente).
  • El modelo 3D podría saltar en el primer fotograma después de la carga.

35.2.10 (1 de octubre de 2024)

  • Se agregaron nuevos AVD de Pixel, incluidos Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL y Pixel 9 Pro Fold
  • Se agregó una nueva imagen del sistema de Tablet para Vanilla Ice Cream (nivel de API 35).

35.1.20 (29 de agosto de 2024)

  • Se agregó el AVD Pixel 8a
  • Se corrigieron varios errores en dispositivos plegables.
  • Actualización de Qt y correcciones de fallas y bloqueos relacionados con Qt
  • [Corrección de errores] Se corrigieron las fallas y los bloqueos en Windows con aplicaciones que usan Vulkan.

34.2.16 (9 de julio de 2024)

  • [Corrección de errores] Se corrigieron las fallas de la IU que se producían en el Pixel Fold cuando se doblaba o desplegaba.
  • [Corrección de errores] Se mostraba incorrectamente la versión de Android como Versión preliminar de Android Vanilla Ice Cream en lugar del nivel de API 35 en Mac M1.
  • [Corrección de errores] Error #296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE muestra un valor verdadero en el emulador de la tablet Pixel C.

34.2.15 (31 de mayo de 2024)

  • Se realizaron varias correcciones de fallas relacionadas con el modo swangle y la limpieza de anunciantes.

34.2.14 (20 de mayo de 2024)

Se probó con el parche 1 de Android Studio Jellyfish Stable.

  • [Corrección de errores] A veces, la instantánea se bloqueaba en el emulador incorporado.
  • [Corrección de errores] Los botones "No" y "Cancelar" no funcionan correctamente en la instantánea.
  • [Corrección de errores] Los botones del mando de dirección no funcionan
  • [Corrección de errores] Se solucionó el problema que se observaba en Windows y que impedía que el emulador se iniciara en algunas condiciones cuando se usaban modos de GPU con ANGLE y se mostraba el mensaje de error "No se pudo inicializar la emulación de GL" en el registro. Ten en cuenta que iniciar el emulador desde la línea de comandos con la opción -gpu swangle_indirect podría generar este error con esta versión. Si aún quieres iniciar el emulador con una línea de comandos en Windows con renderización de gráficos de software con esta versión, usa -gpu swiftshader_indirect.
  • [Corrección de errores] La combinación de teclas de ubicación del teclado carga un mapa inutilizable.
  • [Corrección de errores] Cuando se configuraba la ubicación, faltaba el diálogo "Guardar ruta".

34.2.13 (30 de abril de 2024)

Se probó con Android Studio Jellyfish Stable.

  • Actualización a Qt 6.5.3
  • La compatibilidad con las actualizaciones de la API de Google Maps que se usan en las funciones de ubicación en los controles extendidos del emulador, que ocurrirá a fines de mayo.
  • Correcciones de fallas de alto impacto
  • Se realizaron varias correcciones en los AVDs de Pixel.
  • Actualiza la biblioteca de gráficos que se usa para la renderización de software
  • [Corrección de errores]Error 225541819: Al iniciar Chrome, el Emulador fallaba en x86_64.
  • [Corrección de errores]Error 314614435: El interruptor -http-proxy se analiza de forma incorrecta.

34.1.20 (1 de abril de 2024)

Se probó con Android Studio Iguana Stable.

  • [Corrección de errores] Problema #314614435: Se corrigió el problema por el que el interruptor -http-proxy se analizaba de forma incorrecta.

34.1.19 (7 de marzo de 2024)

Se probó con Android Studio Iguana Stable.

  • [Corrección de errores] Error #312677259: Se corrigió la pantalla bloqueada en el emulador incorporado después de cambiar el tamaño de la ventana.

34.1.18 (29 de febrero de 2024)

Se probó con Android Studio Iguana Stable.

  • Se agregaron los siguientes dispositivos a Emulator:
    • Pixel Fold
    • Pixel Tablet
    • Pixel 8
    • Pixel 8 Pro
    • Pixel 7a
  • Prueba de integración de gRPC: Los extremos de gRPC ahora están disponibles para las pruebas de instrumentación que se ejecutan dentro del emulador, lo que permitiría probar situaciones realistas. Esta función permite a los desarrolladores interactuar de forma segura con el extremo gRPC alojado por Android Emulator desde las pruebas de instrumentación de Android.
  • Se corrigieron varios errores.

33.1.24 (28 de diciembre de 2023)

Se probó con Android Studio Hedgehog Stable y con Iguana Beta 1.

  • Se solucionó el problema de la cámara web del emulador que no permite la grabación de pantalla en formato mp4.
  • Se corrigió la falla del emulador en el AVD de Pixel Fold cuando el dispositivo no está desplegado durante una grabación de pantalla.
  • Se solucionó el problema por el que el Pixel Fold muestra una skin de teléfono diferente con un teclado desconectado y no se puede usar (se corrigió en Windows, Mac Intel y Linux).
  • Se corrigió la falla de apariencia en los sensores virtuales en el modo independiente (se solucionó en Windows, Intel de Mac y Linux).
  • Se corrigieron algunas fallas, en especial las que se producían cuando se cerraba el emulador.

33.1.23 (30 de noviembre de 2023)

Se probó con el parche 4 de Android Studio Giraffe y Hedgehog Stable.

  • Nueva implementación de dispositivo plegable para emular mejor el dispositivo Pixel Fold (funciona con el nivel de API 34 más reciente).
  • Actualización del backend de gráficos: Implementamos el protocolo gfxstream para nuestro backend de gráficos. Esta mejora aumenta el rendimiento y la estabilidad general de los gráficos de tu sistema. Además, se introduce la compatibilidad con Vulkan 1.3 a partir de la imagen del sistema con nivel de API 34.
  • Solicitud de función: Es una opción para inhabilitar el gesto de pellizcar para acercar o alejar, o reasignar su tecla de acceso rápido.
  • [Corrección de errores] Problema #302562962: Se corrigió la falla de la cámara web del emulador que se producía cuando se usaba macOS Sonoma.
  • [Corrección de errores] Problema #293503871: Se corrigió el error por el que no se guardaba la configuración de "Micrófono" cuando se reiniciaba el emulador.
  • [Corrección de errores] Problema #270386314: Se corrigió el error de animación por el que la barra lateral permanecía abierta una vez que se minimizaba la pantalla del AVD.
  • [Corrección de errores] Problema #154896775: Se corrigió la herramienta de envío de errores.

32.1.15 (29 de agosto de 2023)

Se probó con el parche 1 de Giraffe de Android Studio y Hedgehog Canary 16.

  • Cumple con los requisitos de GAS HW para sensores en AAE Emulator.
  • [Corrección de errores] Error #266201208: No se envían SMS en hebreo en el nivel de API 33.
  • [Corrección de errores] Error #257097404: El emulador no muestra la hora correcta después de que se activa el host en los niveles de API 29 y 30.
  • [Corrección de errores] Error #228201899: No se puede ver Google Maps en los controles extendidos de Android Emulator.

32.1.14 (27 de junio de 2023)

Se probó con Android Studio Hedgehog Canary 8, Giraffe Beta 5 y Flamingo Stable.

  • Corrige las orientaciones y distorsiones de la cámara del emulador.
  • [Corrección de errores] Error #257097404 "El emulador no muestra la hora correcta después de activar el host". Este error todavía se reproduce en el nivel de API 29 y 30.
  • [Corrección de errores] Error #243456582 "Es posible que las versiones de Android después del nivel de API 30 no se inicien correctamente en el emulador en máquinas Mac M1".

32.1.13 (22 de mayo de 2023)

Se probó con Android Studio Hedgehog Canary 2, Giraffe Beta 1 y Flamingo Stable.

  • Se agregó compatibilidad para AVDs de Pixel Fold y de Pixel Tablet.
  • Se mejoró el problema de falla de gLinux.
  • [Corrección de errores] Error #215231636 "El emulador con un nivel de API superior al nivel 30 no funciona en el procesador Intel de 12ª generación".
  • [Corrección de errores] Error #275397905 Alto nivel de falla en Android Emulator M1 cuando se mueve el enfoque del cursor dentro y fuera del emulador de forma repetida.
  • Problema conocido de inicio del AVD Error #281725854. Consulta Solución de problemas del emulador para obtener más información.

32.1.12 (21 de marzo de 2023)

Se probó con Giraffe Canary 10, Flamingo RC y el parche 2 de Electric Eel de Android Studio.

  • [Corrección de errores] Error #267647323: La red no funciona en el Emulador iniciado desde Android Studio.
  • [Corrección de errores] Error #268498686: La pantalla del Emulador parpadea.
  • [Corrección de errores] Error #270034824: El rendimiento del Emulador se degradó después de actualizar a la versión 33.1.1.
  • [Corrección de errores] Error #225541819 Al iniciar Chrome, el Emulador fallaba en x86_64.
  • [Corrección de errores] Error #257097404: El Emulador no muestra la hora correcta después de activar el host.
  • Se agregaron informes de fallos para dispositivos Apple M1.

32.1.11 (8 de febrero de 2023)

Se probó con Giraffe Canary 2, Flamingo Beta 1 y el parche 1 de Electric Eel de Android Studio.

  • Optimizaciones de la velocidad de la red.
  • Compatibilidad del mouse en el Emulator incorporado.
  • Mejoras de Virtio-snd.
  • Se inhabilitó el uso de symlinks mientras descomprime Android Emulator durante la instalación.
  • Se corrigió la falla en la verificación del emulador.

31.3.14 (13 de diciembre de 2022)

Se probó con Android Studio Dolphin, Electric Eel RC1 y Flamingo Canary 9.

  • [Corrección de errores] Se corrigieron las fallas de AVD que se producían cuando se accedía a Play Store.

31.3.13 (27 de octubre de 2022)

Se probó con Android Studio Dolphin, Electric Eel Beta 2 y Flamingo Canary 5.

  • [Corrección de errores] Problema #249948338: El parámetro de zona horaria no funciona.
  • [Corrección de errores] Problema #249366543: La opción -dns-server de Emulator no funciona después de la API 31.

31.3.12 (10 de octubre de 2022)

Se probó con Android Studio Dolphin y Electric Eel Beta 1.

Esta actualización incluye las siguientes mejoras y correcciones:

  • [Corrección de errores] Error #247843000: Se producía un error relacionado con el manejo de rutas de acceso relativas de AVD.
  • Se aumentó el tamaño del disco para nivel de API 24 y superiores.

31.3.11 (23 de septiembre de 2022)

Se probó con Android Studio Dolphin y Electric Eel Canary 10.

Esta actualización incluye las siguientes mejoras y correcciones:

  • [Corrección de errores] Fallaba el AVD del emulador incorporado en la ventana de controles extendidos.
  • [Corrección de errores] Error #183139207: Errores de audio asociados con el emulador que activa el micrófono
  • [Corrección de errores] Error #229764024: Error táctil fijo del AVD que genera errores de comportamiento de la IU
  • [Corrección de errores] Se produce un error cuando se inicia la API 33 de AVD en Mac M1.
  • [Corrección de errores] Error #243053479: Velocidad de red lenta después de actualizar el emulador
  • [Corrección de errores] Error #244617627: La ubicación de Maps no funciona en Windows ni Linux
  • [Corrección de errores] Error #232971796: El botón "Llamar a un dispositivo" no funciona en la página Controles extendidos > Teléfono
  • Actualiza Android Emulator a minigbm
  • Migración de secuencias de comandos de compilación a Python3

31.3.10 (18 de agosto de 2022)

Se probó con Android Studio Dolphin Beta 5 y Electric Eel Canary 9.

Ya están disponibles las descargas independientes del emulador. Si experimentas algún problema o falla con esta última versión estable, reporta un error y procura descargar una versión anterior que ya funcionara de los archivos de descarga del emulador.

Esta actualización incluye las siguientes mejoras y correcciones:

  • Se mejoró la compatibilidad con la ruta de acceso Unicode en Windows.
  • Se mejoró el control de cierre del emulador para que un nuevo lanzamiento del mismo AVD pueda tener éxito.
  • Se actualizó el diseño de AVD plegable y la configuración predeterminada.
  • Se actualizaron los botones del emulador de Wear.
  • Se mejoró la transmisión de audio de gRPC.
  • Se agregó un comando para cambiar de tamaño en la consola del emulador.
  • Se corrigió Chrome para la API 31.
  • [Corrección de errores] La autenticación de Cuentas de Google fallaba con GmsCore v21.42.18.

31.2.10 (20 de abril de 2022)

Se probó con Android Studio Dolphin Canary 8 y Chipmunk RC 1.

Esta actualización incluye las siguientes mejoras y correcciones:

  • Se agregó una utilidad para cargar funciones de Vulkan con resguardos
  • [Corrección de errores] Corrección del error de compilación gcc8

31.2.9 (23 de marzo de 2022)

Se probó con Android Studio Dolphin Canary 7.

Esta actualización incluye la siguiente corrección:

  • [Corrección de errores] Se ignoraba la presión de memoria cuando se guardaba una instantánea en M1.

31.2.8 (7 de febrero de 2022)

Se probó con el parche 1 de Android Studio Bumblebee y Chipmunk Canary 6.

Esta actualización incluye las siguientes mejoras y correcciones:

  • [Corrección de errores] No se podía acceder a las apps.
  • [Corrección de errores] Error #215368358: "adb restart" en la plataforma de Intel fallará con la "solicitud de apagado de la CPU virtual".

31.2.7 (1 de febrero de 2022)

Se probó con el parche 1 de Android Studio Bumblebee y Chipmunk Canary 6.

Esta actualización incluye la siguiente corrección:

  • [Corrección de errores] Se producía un error de bloqueo del emulador en máquinas M1.

31.2.6 (20 de enero de 2022)

Se probó con Android Studio Arctic Fox, Bumblebee Beta 4 y Chipmunk Canary 6.

Esta actualización incluye las siguientes mejoras y correcciones:

  • Se agregaron botones de Wear al emulador de Wear OS.
  • Se pueden editar todas las propiedades del vehículo en la pestaña VHAL.
  • [Corrección de errores] La autenticación de Cuentas de Google fallaba con GmsCore v21.42.18.
  • [Corrección de errores] Netshaper no funcionaba bien con VirtioWifi.
  • [Corrección de errores] El comando de la consola del mouse del evento no funcionaba.
  • Se agregó una verificación de KVM para la creación de AVD local.

31.1.3 (18 de enero de 2022)

Esta actualización incluye las siguientes mejoras y correcciones:

  • Puertos de consola habilitados para Fuchsia
  • Cuando se cambia el tamaño de una ventana de varias pantallas, se ignora la orientación
  • Wi-Fi: Se agregó compatibilidad para filtrar paquetes unicast basados en la dirección MAC de MAT.
  • Wi-Fi: Se solucionó una falla que se producía cuando vmnet estaba en uso.

30.9.5 (15 de diciembre de 2021)

Esta actualización incluye las siguientes mejoras y correcciones:

  • Se agregó la capacidad de cambiar fácilmente el tamaño a una ventana de computadora o tablet.
  • Se agregó compatibilidad con la entrada multitáctil desde dispositivos host compatibles.
  • VirtioWifi: Se agregó compatibilidad con la red TAP.
  • Se habilitó la entrada rotativa para imágenes del sistema Wear.
  • Se solucionó el problema de configuración de audio de gRPC.
  • Se actualizó la reproducción del emulador de SensorReplay para que sea compatible con los sensores estándar de Android.
  • Se conectó el emulador a dispositivos periféricos y dispositivos que usan USB con transferencia USB.

30.4.5 (23 de febrero de 2021)

Esta actualización incluye las siguientes mejoras y correcciones:

  • macOS: Se corrigieron problemas relacionados con la distorsión de entrada de audio.
  • Se agregó compatibilidad con virtio-vsock en el espacio del usuario.
  • Las imágenes del sistema futuras usarán virtio-console para mensajes de Logcat y kernel.
  • Se aceleró la renderización de Vulkan.
  • Se agregó compatibilidad con la depuración de instantáneas en la prueba fallida.
  • virtio-gpu: Se actualizaron las definiciones para admitir las enumeraciones de recursos de BLOB más recientes.
  • Se agregó compatibilidad con instantáneas para el transporte de gráfico de tipo "asg".
  • macOS: Se agregó compatibilidad para compilar con el SDK de macOS 11.1 o versiones posteriores.
  • KVMClock se habilitó de forma predeterminada en las imágenes del sistema más nuevas.
  • Se agregó compatibilidad con un sensor de ritmo cardíaco en los emuladores de Wear.
  • Se quitó el backend de libportability Vulkan.
  • Se agregó compatibilidad con más funciones en el simulador de módem.

30.0.26 (16 de agosto de 2020)

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

Compatibilidad con dispositivos plegables con sensor de bisagra virtual y vista en 3D

  • Se agregó compatibilidad con sensores de bisagra para dispositivos plegables. Esto requiere una versión futura de la imagen del sistema y la configuración de AVD de Android 11. Los parámetros de vista plegable en 3D y de bisagra ahora están integrados con los ajustes predeterminados de plegables. El siguiente código se puede usar, por ejemplo, con el archivo config.ini 7.3 de AVD plegable:

    hw.sensor.hinge = yes
    hw.sensor.hinge.count = 1
    hw.sensor.hinge.type = 1
    hw.sensor.hinge.ranges = 180-360
    hw.sensor.hinge.defaults = 180
    hw.sensor.hinge.areas = 54.7-0
    hw.sensor.posture_list=4, 3
    hw.sensor.hinge_angles_posture_definitions=210-360, 180-210
    hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
    
  • Los dispositivos plegables ahora también llevan un parámetro de subtipo. La propiedad hw.sensor.hinge.sub_type = hinge/fold de config.ini ahora está disponible. Consulta la entrada de blog Developing for Android 11 with the Android Emulator para obtener más información.

  • El sensor de bisagra ahora está habilitado de forma predeterminada.

  • Si se configura un dispositivo plegable, el emulador ahora envía actualizaciones de los sensores de ángulo de bisagra y cambios de postura al invitado. Los dispositivos plegables ahora actualizarán el ángulo y la posición del sensor de bisagra cuando se presionen los botones de plegado o desplegado de la barra de herramientas.

Emulador para hosts ARM64

  • El código fuente del emulador de Linux ahora admite la compilación cruzada de hosts de x86_64 a arm64, lo que permite ejecutar imágenes del sistema arm64 con la virtualización de KVM. Actualmente, solo se admite -gpu swiftshader_indirect (renderización de host arm64 de Swiftshader), pero también es posible usar un conjunto compatible de bibliotecas libEGL/libGLESv2 de GPU host si reemplazas lib64/gles_swiftshader por ellas y luego reinicias con -gpu swiftshader_indirect. Es posible que las instantáneas tampoco funcionen (agrega -no-snapshot a la línea de comandos). Instrucciones:

    mkdir emu
    cd emu
    repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1
    repo sync -qcj 12
    cd external/qemu
    pip install absl-py
    pip install urlfetch
    sudo apt-get install crossbuild-essential-arm64
    python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
    
  • La compatibilidad con Apple Silicon está en progreso.

Compatibilidad con virtio-gpu

  • Se agregó compatibilidad del lado del host para los próximos recursos de BLOB con coherencia de host virtio-gpu.
  • Debido a la manera en que funciona la renderización del emulador, ahora procesamos la virtqueue de virtio-gpu en el subproceso de CPU virtual (porque la renderización se transfiere en otros subprocesos de todas formas). Se habilitará la renderización de virtio-gpu en una versión futura de la imagen del sistema y del emulador.
  • En una versión futura de la imagen del sistema, el emulador podrá ejecutar todos los gráficos con una pila basada en virtio-gpu.

Más novedades sobre funciones y mejoras

  • La transferencia USB ahora está disponible en Windows con -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id> (ya debería funcionar también en Linux y macOS).
  • Se actualizaron las bibliotecas de WebRTC a M83.
  • El emulador ahora admite la transmisión de audio en contenedores mediante WebRTC.
  • Se quitó darwinn pipe endpoint.
  • Ahora está disponible la decodificación VPx CUDA para videos si está disponible en el hardware, mediante la variable de entorno ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.
  • En macOS, SSE 4.1 y 4.2 ahora están disponibles desde el invitado de Android.
  • En macOS, INVTSC ahora está habilitada de forma predeterminada. Esto puede mejorar la exactitud de las mediciones de tiempo del invitado.
  • Ahora hacemos un seguimiento de qué panel de control extendido seleccionó el usuario en las métricas.
  • El emulador de Linux ahora usa el reloj paravirtualizado de KVM cuando la versión del kernel invitado es >= 5.4 (imágenes del sistema R o versiones posteriores).
  • El emulador ahora usa LZ4 para descomprimir los kernels invitados, lo que lo hace compatible con la canalización de kernel moderna.
  • Se agregaron comandos de consola para obtener el directorio de AVD del emulador, la ruta del archivo de descubrimiento en el caso de uso incorporado en Studio y la ruta a las instantáneas:

    adb emu avd path # Obtains path to AVD directory
    adb emu avd discoverypath # Obtains path to discovery file
    adb emu avd snapshotspath # Obtains path to snapshots folder
    adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
    
  • Agregamos una opción para ocultar el marco del dispositivo del AVD actual en Extended Controls > Settings para facilitar el ahorro de espacio vertical en la pantalla. Para ocultar marcos de dispositivos a nivel global en todos los AVD, ponemos a disposición la marca de función NoDeviceFrame, que puedes activar iniciando el emulador desde la línea de comandos con el marco -feature NoDevice o bloquear agregando NoDeviceFrame = on a ~/.android/advancedFeatures.ini (crea este archivo si no existe).

  • Se agregó un elemento desplegable en la página móvil para activar y desactivar la compatibilidad con la medición. Se trata de una no-op para las imágenes del sistema más antiguas que no son compatibles con la activación y desactivación de la medición en 5G.

    • También se agregó el comando de consola para el mismo propósito: gsm meter on|off.
  • Se actualizaron la cadena de herramientas y la compilación a C++17.

Corrección de errores: Emulador incorporado

  • El portapapeles ahora debería funcionar.
  • Se solucionó el problema por el que los caracteres en mayúsculas se mostraban como caracteres en minúscula en el emulador.
  • Se corrigió la carga del token de consola desde una ruta de acceso de Unicode en Windows.
  • Se corrigió el mensaje de error SO_REUSEPORT en Linux.
  • Se solucionó un problema de corrupción de instantáneas cuando se enviaban comandos de instantáneas a través de gRPC y cuando se presionaba el botón para guardar instantáneas en el emulador incorporado de Android Studio.
  • Detectamos que, cuando se usa el emulador de Linux incorporado en Studio con el Escritorio remoto de Chrome, se produce un error por el que XDG_RUNTIME_DIR no se establece y puede suceder que el emulador incorporado no aparezca debido a que los archivos de detección del emulador se encuentran en XDG_RUNTIME_DIR. Puedes verificar el estado del problema correspondiente en la Herramienta de seguimiento de errores de Chrome.

    Como solución temporal, el emulador ahora usa archivos de detección en un directorio posiblemente diferente que se basa en el ID único del usuario: /run/user/&lt;uid>.

  • Emulador incorporado: Los dispositivos con recortes o esquinas redondeadas ahora cambian correctamente su diseño para contemplar las esquinas y recortes. Esto requiere un inicio en frío de esos emuladores.

  • El extremo de gRPC ahora admite el envío de SMS al dispositivo.

Correcciones generales

  • Detectamos problemas de compatibilidad al ejecutar el emulador de Windows con Riot Vanguard activo. El emulador de Windows ahora detecta el sistema antitrampas Vanguard y muestra un mensaje emergente de advertencia cuando lo hace.
  • Se corrigió el error FD_SETSIZE en Windows. Ahora usamos WSAEventSelect() en lugar de select() para establecer conexiones sin bloqueo a servidores de bucle invertido.
  • Se agregó compatibilidad con la función F16C de CPUID al emulador de Linux que corrige problemas para ejecutar algunas aplicaciones de ARM64 a través de la traducción de NDK. Estamos trabajando en macOS y Windows.
  • Se corrigió la reproducción de ruta en GPX/KML para seguir las marcas de tiempo.
  • Se corrigió el ícono que rebota durante el inicio de macOS.
  • Si hw.audioInput=no y hw.audioOutput=no en config.ini, el audio del emulador ahora se inhabilita correctamente.
  • Se solucionó un problema por el que, si la ventana del emulador se minimizaba mientras la ventana de controles extendidos estaba abierta pero no activa, esta seguía apareciendo cuando se cambiaba el tamaño de la ventana del emulador. Quitaremos por completo el comportamiento (el caso con la ventana de controles extendidos activa) en una actualización futura.
  • Se corrigió un problema errático relacionado con la falta de conexión de la red Wi-Fi cuando se inicia el emulador.
  • Se corrigió la espera a la salida cuando el emulador emite comandos de shell con tiempos de espera largos o indefinidos.
  • Se actualizó pc-bios con correcciones para mejorar la compatibilidad con las imágenes grandes pasadas a -initrd. En el BIOS anterior, se usaba un método muy ineficiente.
  • Se corrigió una falla durante la finalización cuando se usa la opción -wifi-server-port.
  • Ahora, el emulador muestra una advertencia si se pasan opciones no compatibles a -prop (solo se admiten objetos qemu.*).
  • Cuando se compila el emulador en Windows, debería haber menos posibilidades de ver fallas inestables para escribir en los archivos. Si quieres obtener más información, consulta las instrucciones de compilación de Windows.
  • Se inhabilitó el botón Zoom para AVD plegables, lo que causaba problemas.
  • El emulador ahora informa correctamente el tiempo de inicio que proviene del reinicio de un dispositivo.
  • Linux: Cuando no hay suficientes permisos de KVM, el emulador ahora muestra las instrucciones de depuración más rápidamente.
  • Se solucionó el problema en el que el emulador no podía iniciar imágenes del sistema recientes sin aceleración.
  • Se corrigió un problema de corrupción de memoria o de falla en el inicio desde un detector de inicio completado.
  • Se corrigió la fuga de memoria durante sesiones largas de grabación de pantalla.
  • Se actualizaron los íconos del emulador para reflejar el desarrollo de la marca de Studio 4.1.
  • Se mejoró la compatibilidad con la detección de sesiones remotas en Windows.

Correcciones: Decodificación de gráficos y video

  • Se solucionó un problema por el que el último juego de Asphalt 9 se renderizaba con una pantalla negra.
  • Se quitó el spam sobre la limpieza del búfer mapeado con NULL.
  • Se corrigió una condición de carrera cuando se elimina el estado de Vulkan al cerrarse una app de Vulkan para invitados.
  • Los sombreadores de emulación de ASTC/ETC2 de Vulkan ahora se incorporan en la biblioteca libOpenglRender. Esto será más confiable que la lectura desde el sistema de archivos.
  • Se corrigió un problema en Vulkan en el que si se ejecutaba con una instancia de Vulkan 1.0 en el host, vkGetImageMemoryRequirements2KHR borraba incorrectamente el campo pNext de la estructura VkMemoryRequirements2 que se mostraba.
  • Se corrigió una fuga de memoria en el procesador de Vulkan.
  • Se corrigió una regresión reciente en la que no se podían compilar los sombreadores de GLSL ES 1.0 con nombres de variables como isampler2D.
  • Se actualizó el traductor de sombreadores ANGLE con varias correcciones que abordan un posible error en la compilación de sombreadores en Linux.
  • Ahora bloqueamos el emulador si el sombreador del búfer de fotogramas básico no se compila para realizar un seguimiento del fenómeno.
  • Se actualizó el traductor de sombreadores ANGLE para mantenerse al día con ANGLE ascendente. Esto solucionó un problema relacionado con la corrupción de memoria durante la traducción y el uso permanente de los sombreadores de OpenGL ES que usaban matrices no cuadradas. El traductor de sombreador ahora es una biblioteca compartida separada, libshadertranslator.dll.
  • Se solucionó un problema en la inicialización de Vulkan en algunos controladores de GPU, en el que no se encontraron ciertas funciones del dispositivo 1.1.
  • Vulkan: Se revirtió al uso del cargador precompilado porque favorecer al cargador de Vulkan del sistema causaba problemas en algunas configuraciones. Vamos a descubrir una mejor solución.
  • Se solucionó un problema que se producía al usar la memoria externa de Vulkan, donde se podrían haber importado índices de tipo de memoria no coincidentes en el host.
  • Se corrigió el problema en la emulación de GL_ALIASED_POINT_SIZE_RANGE en la que la enumeración no era compatible con el host.
  • Se corrigió el problema por el que, en algunas GPU del host, los sombreadores Skia no se compilaban debido a errores relacionados con GL_EXT_shader_framebuffer_fetch.
  • Debido a que nuestra copia del procesador D3D9 ANGLE se quitó hace varias versiones, ahora también cambiamos automáticamente a los usuarios que estaban en ese procesador a d3d11 ANGLE si estaba seleccionada en las preferencias de la IU.
  • Se agregó más información de depuración a la inicialización de WGL en Windows para el seguimiento de fallas.
  • Cuando es hw.gltransport=virtio-gpu-pipe, el rendimiento se mejora si no se rota el host en las transferencias del host a los invitados.
  • Se agregó más registro de depuración para cuando no se inicializa la emulación de GLESGLES.
  • Se solucionó un problema relacionado con que los videos de YouTube parpadeaban o no aparecían al cargar la instantánea.
  • Por ahora, volvimos a la decodificación de software para libvpx, ya que observamos problemas con la decodificación de hardware CUDA de libvpx. Si tienes una implementación de decodificación de hardware CUDA compatible en el lado del host, la decodificación de hardware de libvpx se puede volver a habilitar a través de la variable de entorno ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.

30.0.10 (30 de abril de 2020)

Esta actualización incluye compatibilidad para ejecutar el emulador directamente en Android Studio y dispositivos virtuales con el modo de ventana de forma libre activado de manera predeterminada.

Cómo ejecutar el emulador en Android Studio

Android Emulator ahora se puede ejecutar directamente en Android Studio. Usa esta función para conservar el espacio de la pantalla, navegar rápidamente entre el emulador y la ventana del editor con las teclas de acceso rápido y para organizar tu flujo de trabajo del IDE y emulador en una sola ventana de aplicación.

Modo de ventana de forma libre

Ahora puedes crear un AVD que tenga habilitado el modo de ventana de forma libre seleccionando el perfil de hardware para tablets de forma libre de 13.5" cuando crees un dispositivo virtual en Android Studio. Este perfil de hardware requiere una imagen del sistema con la Vista previa para desarrolladores 3 de Android 11 o versiones posteriores.

Errores conocidos

El cambio de tamaño de las ventanas de forma libre no funciona correctamente debido a problemas de transferencia de foco al administrador de ventanas. Este problema se abordará en una versión futura de la imagen del sistema de Android 11.

30.0.0 (19 de febrero de 2020)

Esta actualización incluye imágenes del sistema de Android 11 (nivel de API 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 del 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.

Errores 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 el nivel de API 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.

Errores 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 del sistema de Android Q

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

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 del 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 del 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 del 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 de uso 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 del sistema de Android Q.
  • Se corrigieron problemas en los que se mostraba una pantalla negra al usar imágenes del 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 renderizaba 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 del 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 del 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 del 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 renderizar 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 del 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

Errores 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 CI 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 del sistema de Android Q.
  • Se corrigieron problemas en los que se mostraba una pantalla negra al usar imágenes del 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ó portabilidad a versiones anteriores 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 las 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 "Hey 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. Esta opción se inhabilita automáticamente 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 Quick Boot (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 del 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 reducción de la 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 utiliza menos memoria RAM en general, especialmente cuando se usan imágenes del sistema con un nivel de API 28 o posterior. Estas imágenes del 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 la Herramienta de seguimiento de errores que describa tu caso de uso.
  • 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 Quick Boot 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 la Herramienta de seguimiento de errores.

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 este 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 Quick Boot 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 del sistema que usan un nivel de API 28 o una versión posterior.
  • 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 del 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 la Herramienta de seguimiento de errores.
  • 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 la Herramienta de seguimiento de errores.
  • 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 la Herramienta de seguimiento de errores.
  • 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
    
    De esta manera, 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 del 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 la Herramienta de seguimiento de errores 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 el nivel de API 26 (o versiones posteriores) a 1,536 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 la Herramienta de seguimiento de errores. 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 Quick Boot 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úsculas + R (Cmd + Mayúsculas + 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 si usas 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.

Renderización con Skia

Al usar imágenes para el nivel de API 27 o versiones posteriores, el emulador puede procesar la IU de Android con Skia, que a su vez puede realizar una renderización más fluida 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 al 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 por 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 por 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 por 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 aplicaciones de realidad aumentada compiladas con ARCore. Para obtener instrucciones y más información sobre los requisitos, consulta Cómo ejecutar apps 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 del sistema posteriores, la cámara web conectada debe tener la capacidad de capturar fotogramas de 720 p.

  • Correcciones

    • Se solucionó un problema por 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 cuadro de 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 la renderización 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 por el que no era posible escribir una B mayúscula con Mayúsculas + 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 de 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 Quick Boot cuando se cierra el emulador. Es el valor predeterminado.
    • No: No guarda instantáneas de Quick Boot; realiza siempre un inicio en frío.
    • Ask: Pregunta si se desea guardar o no una instantánea de Quick Boot 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 del sistema que usan el nivel de API 24 y posterior, 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 la renderización 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 del 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 a pedido. 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 la renderización de software del invitado. Para ello, se volvió a la renderización de software del host con Swiftshader. Las últimas revisiones de las imágenes del sistema para los niveles de API 19 a 25 con las API de Google deberían tener una renderización 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 la renderización 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 del nivel de API 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 anteriores 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 del 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 no alcanzara el almacenamiento de las imágenes del sistema de Play Store de tamaño fijo. 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úsculas + 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 por 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 por el que se detectaba incorrectamente HyperV si se ejecutaba el emulador en un hipervisor Xen.
  • Se solucionó un problema por 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 compartir 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 Help 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 del 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 del sistema y las GPU host compatibles con OpenGL ES 3. Actualmente, solo los hosts de Android O (nivel de API 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 toda la renderización, 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 la renderización configurada 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 de API 26. 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 del sistema del nivel de API 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 del nivel de API 24 (revisión 11 y versiones posteriores) y pronto se incluirá para todas las imágenes del 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 del nivel de API 24 (revisión 11 y versiones superiores) y pronto se incluirá para todas las imágenes del 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 mediante la inhabilitación de GLAsyncSwap de forma predeterminada. Se agregó esta función en la revisión 25.3.0 para mejorar la latencia 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:
    • Se aumentó la velocidad de inserción/extracción de ADB.
    • Mejor compatibilidad con aceleración 3D
    • Mayor capacidad de respuesta general del emulador
    • Se mejoró el rendimiento gráfico.
  • 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 una mejor capacidad de procesamiento (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.