Cómo configurar la aceleración de hardware para Android Emulator

El emulador funciona mejor si puede usar el hardware de la máquina, como la CPU, la GPU y el módem, en lugar de ejecutarse como software puro. La capacidad de usar el hardware de la máquina para mejorar el rendimiento se denomina aceleración de hardware.

El emulador puede usar la aceleración de hardware para mejorar la experiencia de dos maneras principales:

  • Aceleración de gráficos para una mejor renderización de la pantalla
  • Aceleración de máquina virtual (VM) para mejorar la velocidad de ejecución

La aceleración de hardware está habilitada de forma predeterminada en la mayoría de las máquinas. Si no está habilitado en tu máquina, en esta página se describe cómo puedes configurar la aceleración de gráficos y de máquina virtual (VM) para obtener un mayor rendimiento del emulador.

Cómo configurar la aceleración de gráficos

La aceleración de gráficos usa el hardware de tu computadora (generalmente, la GPU) para acelerar el procesamiento de la pantalla. Los dispositivos Android usan OpenGL para sistemas integrados (OpenGL ES o GLES) para renderizar gráficos 2D y 3D en la pantalla.

Cuando creas un dispositivo virtual de Android (AVD) en el Administrador de AVD, puedes especificar si el emulador usa hardware o software para emular la GPU del AVD. Se recomienda la aceleración de hardware, que por lo general es más rápida. Sin embargo, es posible que debas usar la aceleración de software si tu computadora usa controladores de gráficos que no son compatibles con el emulador.

De forma predeterminada, el emulador decide usar aceleración de gráficos de hardware o software en función de la configuración de tu computadora. Si el hardware y los controladores de la GPU son compatibles, el emulador usa la GPU. De lo contrario, el emulador utiliza la aceleración de software (usando la CPU de la computadora) para simular el procesamiento de la GPU.

Si inicias el emulador desde la línea de comandos, puedes anular el parámetro de configuración de aceleración de gráficos en el AVD para esa instancia de dispositivo virtual.

Requisitos

Para usar la aceleración de gráficos, el entorno de desarrollo debe contar con lo siguiente:

  • Herramientas del SDK: Última versión recomendada (versión 17 como mínimo)
  • Plataforma de SDK: Última versión recomendada (Android 4.0.3, Revisión 3, como mínimo)

Cómo configurar la aceleración de gráficos en AVD Manager

Si quieres configurar la aceleración de gráficos para un AVD, sigue estos pasos:

  1. Abre el Administrador de AVD.
  2. Crea un AVD nuevo o edita uno existente.
  3. En la ventana Verify Configuration, busca la sección Emulated Performance.
  4. Selecciona un valor para la opción Graphics.
  5. Haz clic en Finish.

Cómo configurar la aceleración de gráficos desde la línea de comandos

Para especificar un tipo de aceleración de gráficos al ejecutar un AVD desde la línea de comandos, incluye la opción -gpu, como se muestra en el siguiente ejemplo:

emulator -avd avd_name -gpu mode [{-option [value]} ... ]

Se puede establecer una de las siguientes opciones para el valor de mode:

  • auto: Permite que el emulador elija entre aceleración de gráficos de hardware o software según la configuración de la computadora.
  • host: Usa la GPU de tu computadora para acelerar el hardware. Esta opción suele proporcionar la calidad y el rendimiento de gráficos más altos para el emulador. Sin embargo, si los controladores de gráficos tienen problemas para renderizar OpenGL, es posible que debas usar las opciones swiftshader_indirect o angle_indirect.
  • swiftshader_indirect: Usa una variante compatible con Quick Boot de SwiftShader para renderizar gráficos mediante la aceleración de software. Esta opción es una buena alternativa al modo host si la computadora no puede usar la aceleración de hardware.
  • angle_indirect: Solo para Windows. Usa una variante compatible con Quick Boot de ANGLE Direct3D para renderizar gráficos mediante la aceleración de software. Esta opción es una buena alternativa al modo host si la computadora no puede usar la aceleración de hardware. En la mayoría de los casos, el rendimiento de ANGLE es similar al uso del modo host, porque ANGLE usa Microsoft DirectX en lugar de OpenGL.

    En Windows, los controladores de DirectX de Microsoft suelen tener menos problemas que los de OpenGL. Esta opción usa Direct3D 11 y requiere Windows 10, Windows 8.1 o Windows 7 (SP1) con la actualización de plataforma de Windows 7.

  • guest: Utiliza el procesamiento del software del invitado. Esta opción proporciona la calidad gráfica y el rendimiento más bajos para el emulador.

Las siguientes opciones de mode dejaron de estar disponibles:

  • swiftshader: Obsoleta en la versión 27.0.2. Usa swiftshader_indirect en su lugar.
  • angle: Obsoleta en la versión 27.0.2. Usa angle_indirect en su lugar (solo Windows).
  • mesa: Obsoleta en la versión 25.3. Usa swiftshader_indirect en su lugar.

Cómo habilitar el procesamiento de Skia para la IU de Android

Cuando se utilizan imágenes para el nivel de API 27 o versiones posteriores, el emulador puede renderizar la IU de Android con Skia. Skia ayuda al emulador a renderizar gráficos de manera más fluida y eficiente.

Para habilitar la renderización con Skia, usa los siguientes comandos en el shell de adb:

su
setprop debug.hwui.renderer skiagl
stop
start

Cómo configurar la aceleración de VM

La aceleración de VM utiliza el procesador de la computadora para mejorar significativamente la velocidad de ejecución del emulador. Una herramienta llamada hipervisor administra esta interacción utilizando las extensiones de virtualización que brinda el procesador de la computadora. En esta sección, se describen los requisitos para usar la aceleración de VM y cómo configurar esta función en cada sistema operativo.

Requisitos generales

Para usar la aceleración de VM con el emulador, tu computadora debe cumplir con los requisitos generales descritos en esta sección y con otros específicos de tu sistema operativo.

Requisitos del entorno de desarrollo

Para usar la aceleración de VM, el entorno de desarrollo debe cumplir con los siguientes requisitos:

  • Herramientas del SDK: Versión mínima, 17; versión recomendada, 26.1.1 o posterior
  • AVD: En la siguiente tabla, se describe la versión obligatoria de Android.

    Arquitectura de la CPU Requisito de imagen del sistema
    X86_64 Imágenes del sistema de x86 o x86_64 para Android 2.3.3 (nivel de API 10) y versiones posteriores
    ARM64 Imágenes del sistema de arm64-v8a para Android 5.0 (nivel de API 21) y versiones posteriores

Requisitos de extensión de virtualización

Además de los requisitos del entorno de desarrollo, el procesador de la computadora debe admitir extensiones de virtualización. Los procesadores compatibles son los siguientes:

  • Procesadores Intel con tecnología de virtualización Intel (VT-x, vmx), como procesadores Intel Core iX e Intel Core Ultra
  • Procesadores AMD con AMD-V (SVM), como procesadores AMD Ryzen
  • Apple Silicon

Requisitos adicionales para procesadores Intel y AMD:

Se requiere la traducción de direcciones de segundo nivel (Intel EPT o AMD RVI) para procesadores Intel y AMD. La mayoría de los procesadores Intel y AMD modernos admiten la traducción de direcciones de segundo nivel. Es posible que solo los procesadores Intel o AMD de primera generación que ofrecen extensiones de virtualización no tengan traducciones de páginas de segundo nivel.

Si no sabes con certeza si tu procesador admite las extensiones requeridas, consulta las especificaciones en el sitio del fabricante. Si tu procesador no admite estas extensiones, no podrás usar la aceleración de VM.

Restricciones

La aceleración de VM tiene las siguientes restricciones:

  • No puedes ejecutar un emulador acelerado por VM dentro de otra VM, como una alojada por VirtualBox, VMWare o Docker. Debes ejecutar un emulador acelerado por VM directamente en tu computadora host.
  • Según tu sistema operativo y tu hipervisor, quizás no puedas ejecutar software que use otra tecnología de virtualización al mismo tiempo que ejecutas un emulador acelerado por VM. Algunos ejemplos de este tipo de software incluyen, entre otros, las soluciones de máquinas virtuales, algunos programas antivirus y algunas soluciones antitrampas. La situación se observa mayormente en Windows con Hyper-V desactivado. La mayor parte de ese software puede coexistir con el emulador de Android sin ningún problema. Sin embargo, cuando se producen conflictos, se recomienda no ejecutar el emulador acelerado por VM al mismo tiempo con ese software.

Acerca de los hipervisores

La aceleración de VM requiere un hipervisor, una herramienta que usa extensiones de virtualización proporcionadas por el procesador de la computadora.

Sin un hipervisor y una aceleración de VM, el emulador debe traducir el código máquina desde la VM bloque por bloque para adaptarse a la arquitectura de la computadora host, un proceso que puede ser bastante lento. Con un hipervisor, la VM y la arquitectura de la computadora host coinciden, por lo que el emulador puede ejecutar código de manera directa en el procesador host con el hipervisor. Esta mejora aumenta considerablemente la velocidad y el rendimiento del emulador.

Debes elegir el hipervisor que mejor se adapte a tus necesidades según el sistema operativo y la configuración de la computadora. Para obtener más información, consulta las siguientes secciones:

Cómo comprobar si hay un hipervisor instalado

Puedes usar la opción de línea de comandos -accel-check del emulador para comprobar si hay un hipervisor instalado actualmente en la computadora.

En los siguientes ejemplos, se muestra cómo usar la opción accel-check del emulador. En cada ejemplo, Sdk representa la ubicación del SDK de Android:

Windows:

c:\Users\janedoe\AppData\Local\Android> Sdk\emulator\emulator -accel-check
accel:
0
AEHD (version 2.2) is installed and usable.
accel
Hay varias opciones de hipervisor en Windows. Lo que ves puede ser diferente al ejemplo. Por ejemplo, es posible que veas una de las siguientes palabras clave en el mensaje: GVM(nombre anterior de AEHD), WHPX.

macOS:

janedoe-macbookpro:Android janedoe$ ./Sdk/emulator/emulator -accel-check
accel:
0
Hypervisor.Framework OS X Version 13.2
accel

Linux:

janedoe:~/Android$ ./Sdk/emulator/emulator -accel-check
accel:
0
KVM (version 12) is installed and usable.

Cómo configurar la aceleración de VM en Windows

En Windows, la aceleración de VM puede usar uno de estos dos hipervisores:

  • Windows Hypervisor Platform (WHPX)
  • El controlador de hipervisor de Android Emulator (AEHD)

Cómo elegir un hipervisor en Windows

En esta sección, se muestran los criterios que determinan qué hipervisor se debe usar. El proceso para configurar la aceleración de VM con cada hipervisor se describe en las siguientes secciones.

Criterios Hipervisor
Necesitas ejecutar Hyper-V al mismo tiempo que Android Emulator. Usa WHPX.
No necesitas ejecutar Hyper-V al mismo tiempo que Android Emulator. Usa el controlador de hipervisor de Android Emulator.

Cómo configurar la aceleración de VM utilizando Windows Hypervisor Plaftorm

Para que puedas habilitar WHPX, tu computadora debe cumplir con los siguientes requisitos:

  • Procesadores Intel: Compatibilidad con las funciones de Tecnología de virtualización (VT-x), Tablas de páginas extendidas (EPT) y de Invitado sin restricciones (UG). La opción VT-x debe estar habilitada en la configuración del BIOS de la computadora.
  • Procesadores AMD: Se recomienda el procesador AMD Ryzen (la virtualización o la SVM deben estar habilitadas en la configuración del BIOS de la computadora).
  • Android Studio 3.2 Beta 1 o versiones posteriores.
  • Android Emulator versión 27.3.8 o posteriores.
  • Windows 10 o versiones posteriores.

Para instalar WHPX en Windows, sigue estos pasos:

  1. En el escritorio de Windows, haz clic con el botón derecho en el ícono de Windows y selecciona Aplicaciones y características.
  2. En Opciones de configuración relacionadas, haz clic en Programas y características.
  3. Haz clic en Activar o desactivar las funciones de Windows.
  4. Selecciona Windows Hypervisor Platform.

  5. Haz clic en OK.

  6. Una vez que la instalación haya finalizado, reinicia la computadora.

Cómo configurar la aceleración de VM utilizando el controlador de hipervisor de Android Emulator (AEHD) en Windows

Antes de que puedas instalar y usar el controlador de hipervisor de Android Emulator, tu computadora debe cumplir con los siguientes requisitos:

  • Procesadores Intel o AMD con extensión de virtualización
  • Windows 11 o Windows 10 de 64 bits (las versiones de 32 bits no son compatibles)

    Los usuarios de Windows 8.1, Windows 8 y Windows 7 pueden seguir usando AEHD 1.7 o versiones anteriores. Sin embargo, no se brindará asistencia para esas situaciones.

  • Hyper-V debe estar inhabilitado en el diálogo Características de Windows.

    Ciertos componentes de Windows pueden activar el hipervisor Hyper-V sin habilitar Hyper-V en el diálogo Características de Windows, como el aislamiento de núcleos que ofrece Windows Defender. En esos casos, usa WHPX en su lugar.

En los procesadores AMD, el controlador de hipervisor de Android Emulator se puede instalar a través de SDK Manager en Android Studio 4.0 Canary 5 o versiones posteriores.

En los procesadores Intel, el controlador de hipervisor de Android Emulator se puede instalar a través de SDK Manager en Android Studio Flamingo o versiones posteriores.

Para instalar desde SDK Manager, sigue estos pasos:

  1. Selecciona Tools > SDK Manager.
  2. Haz clic en la pestaña SDK Tools y selecciona Android Emulator hypervisor driver.
  3. Haz clic en OK para descargar y, luego, instalar el controlador de hipervisor de Android Emulator.
  4. Después de la instalación, confirma que el controlador funcione correctamente con el siguiente comando de línea de comandos:

    AEHD 2.1 y versiones posteriores

    sc query aehd
    

    Un mensaje de estado incluye la siguiente información:

    SERVICE_NAME: aehd
           ...
           STATE              : 4  RUNNING
           ...
    

    El siguiente mensaje de error significa que la extensión de virtualización no está habilitada en el BIOS o que Hyper-V no está inhabilitado:

    SERVICE_NAME: aehd
           ...
           STATE              : 1  STOPPED
           WIN32_EXIT_CODE    : 4294967201 (0xffffffa1)
           ...
    

    AEHD 2.0 y versiones anteriores

    sc query gvm
    

    Un mensaje de estado incluye la siguiente información:

    SERVICE_NAME: gvm
           ...
           STATE              : 4  RUNNING
           ...
    

    El siguiente mensaje de error significa que la extensión de virtualización no está habilitada en el BIOS o que Hyper-V no está inhabilitado:

    SERVICE_NAME: gvm
           ...
           STATE              : 1  STOPPED
           WIN32_EXIT_CODE    : 4294967201 (0xffffffa1)
           ...
    

El controlador de hipervisor de Android Emulator también se puede descargar y, luego, instalar desde GitHub. Después de descomprimir el paquete del controlador, ejecuta silent_install.bat en una línea de comandos con privilegios de administrador.

Desinstala el controlador de hipervisor de Android Emulator con los siguientes comandos en una línea de comandos con privilegios de administrador:

AEHD 2.1 y versiones posteriores

   sc stop aehd
   sc delete aehd

AEHD 2.0 y versiones anteriores

   sc stop gvm
   sc delete gvm

Cómo configurar la aceleración de VM en macOS

En macOS, Android Emulator usa el Hypervisor.Framework integrado, que requiere MacOS v10.10 (Yosemite) y versiones posteriores.

Cómo configurar la aceleración de VM en Linux

Los sistemas basados en Linux admiten la aceleración de VM mediante el paquete de software KVM. Sigue las instrucciones para instalar KVM en tu sistema Linux y, luego, verifica que KVM esté habilitado. Para sistemas Ubuntu, consulta Instalación de KVM en Ubuntu.

Requisitos

Para ejecutar KVM, se requieren permisos del usuario específicos. Asegúrate de tener los permisos suficientes que se especifican en las instrucciones de instalación de KVM.

Además, si quieres usar la aceleración de VM en Linux, tu computadora debe cumplir con estos requisitos:

  • Para procesadores Intel, compatibilidad con la tecnología de virtualización (VT-x), las características de Intel EM64T (Intel 64) y la funcionalidad Execute Disable (XD) Bit habilitada
  • Para procesadores AMD: Compatibilidad con AMD Virtualization (AMD-V)

Cómo comprobar si KVM está instalado en Linux

Puedes usar la opción de línea de comandos -accel-check del emulador para comprobar si KVM está instalado. Como alternativa, puedes instalar el paquete cpu-checker que contiene el comando kvm-ok.

En el siguiente ejemplo, se muestra cómo usar el comando kvm-ok:

  1. Instala el paquete cpu-checker:

    sudo apt-get install cpu-checker
    egrep -c '(vmx|svm)' /proc/cpuinfo
    

    Si el resultado es 1 o mayor, se admite la virtualización. Si el resultado es 0, significa que tu CPU no admite la virtualización de hardware.

  2. Ejecuta el comando kvm-ok:

    sudo kvm-ok
    

    Resultado esperado:

    INFO: /dev/kvm exists
    KVM acceleration can be used
    

    Si recibes el siguiente error, significa que aún puedes ejecutar máquinas virtuales. Sin embargo, la máquina virtual es más lenta sin las extensiones de KVM.

    INFO: Your CPU does not support KVM extensions
    KVM acceleration can NOT be used
    

Cómo instalar KVM en Linux

Usa el siguiente comando para instalar KVM:

Cosmic (18.10) o versiones posteriores:

sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

Lucid (10.04) o versiones posteriores:

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Karmic (9.10) o versiones anteriores:

sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils

Guía de configuración anterior para la aceleración de VM en Windows

A partir del emulador 33.x.x.x, HAXM dejó de estar disponible, ya que Intel descontinuó el desarrollo de HAXM. El controlador de hipervisor de Android Emulator (AEHD) reemplaza a Intel HAXM en los procesadores Intel.

Elige un hipervisor en Windows (emulador 32.x.x.x o versiones anteriores)

Criterios Hipervisor
Tienes un procesador Intel y no necesitas ejecutar Hyper-V al mismo tiempo que el emulador de Android. Usa Intel HAXM.
Tienes un procesador AMD y no necesitas ejecutar Hyper-V al mismo tiempo que Android Emulator. Usa el controlador de hipervisor de Android Emulator.
Tienes un procesador Intel o AMD y necesitas ejecutar Hyper-V al mismo tiempo que Android Emulator. Usa WHPX.

Cómo configurar la aceleración de VM usando Intel HAXM en Windows

Para que puedas instalar y usar HAXM de Intel, tu computadora debe cumplir con los siguientes requisitos:

  • Procesador Intel con funciones de tecnología de virtualización (VT-x), Intel EM64T (Intel 64) y funcionalidad Execute Disable (XD) Bit habilitada
  • Windows 11, Windows 10, Windows 8 o Windows 7 de 64 bits (o la versión de 32 bits del sistema operativo en un procesador de 64 bits)
  • En Windows 11, Windows 10 o Windows 8, debes desactivar Hyper-V en el diálogo Características de Windows.

Para instalar el controlador Intel HAXM, sigue estos pasos:

  1. Abre SDK Manager.
  2. Haz clic en la pestaña SDK Update Sites y selecciona Intel HAXM.
  3. Haz clic en OK.
  4. Cuando finalice la descarga, ejecuta el instalador.

    Por lo general, el instalador se encuentra en la siguiente ubicación: sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe

  5. Usa el asistente para completar la instalación.

  6. Después de instalar Intel HAXM, confirma que el controlador de virtualización funcione correctamente con el siguiente comando de línea de comandos:

    sc query intelhaxm
    

    Un mensaje de estado incluye la siguiente información:

    SERVICE_NAME: intelhaxm
           ...
           STATE              : 4  RUNNING
           ...
    

Para obtener más información, consulta las instrucciones de instalación de Intel HAXM en Windows.

Para desinstalar Intel HAXM, usa el instalador o el Panel de control de Windows. Antes de desinstalar Intel HAXM, cierra los emuladores de x86 que estén en ejecución.

Cómo volver a comprobar las funciones luego de inhabilitar Hyper-V

Hyper-V debe estar inhabilitado para usar el controlador de hipervisor de Android Emulator o Intel HAXM. Sin embargo, anular la selección "Hyper-V" en el diálogo Característica de Windows puede no garantizar que Hyper-V esté inhabilitado.

Varias funciones en Windows 10 habilitan Hyper-V de manera implícita. Es posible que los usuarios no sepan que Hyper-V está activado cuando habilitan una de estas funciones. Entre estas funciones, se incluyen las siguientes:

  • Virtual Machine Platform
  • Windows Hypervisor Platform
  • Windows Sandbox
  • Core Isolation
  • Credential Guard

Además, la versión 2 del Subsistema de Windows para Linux requiere Virtual Machine Platform, lo que significa que, de manera implícita, se requiere Hyper-V. Esta lista no es exhaustiva; informa un error si encuentras un elemento que debe incluirse aquí.

Vuelve a verificar que las funciones mencionadas también estén inhabilitadas cuando inhabilites Hyper-V. Consulta la documentación de Microsoft y los ejemplos a continuación para descubrir cómo se puede inhabilitar cada función individual.

Algunas plataformas no pueden inhabilitar inmediatamente Hyper-V cuando está desactivado. En estos casos, el SO Windows no muestra ningún error y Hyper-V aparece inhabilitado en Windows Features Dialog. Cuando esto ocurra, informa el error en la Herramienta de seguimiento de errores de Microsoft.