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

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

Android Emulator puede usar funciones de aceleración de hardware para mejorar el rendimiento, en ocasiones de manera considerable. En esta página, se describe cómo puedes configurar la aceleración de gráficos y máquinas virtuales (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) a fin de 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 debe usar hardware o software para emular la GPU del AVD. Se recomienda la aceleración de hardware, que, en 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 tu computadora) para simular el procesamiento de la GPU.

Si inicias el emulador desde la línea de comandos, también puedes anular la 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, tu entorno de desarrollo debe cumplir con los siguientes requisitos:

  • Herramientas del SDK: Última versión recomendada (versión 17 como mínimo)
  • SDK Platform: Ú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 página 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 tu 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 tu 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 tu computadora no puede usar la aceleración de hardware. En la mayoría de los casos, el rendimiento de ANGLE debería ser 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 el procesamiento con Skia, usa los siguientes comandos en adb shell:

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 tu 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 tu 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, tu entorno de desarrollo debe cumplir con los siguientes requisitos:

  • SDK Tools: Versión mínima, 17; versión recomendada, 26.1.1 o posterior
  • AVD con una imagen del sistema basada en x86, disponible para Android 2.3.3 (nivel de API 10) y versiones posteriores

Requisitos de extensión de virtualización

Además de los requisitos del entorno de desarrollo, el procesador de tu computadora debe admitir una de las siguientes tecnologías de extensión de virtualización:

  • Extensiones de tecnología de virtualización Intel (VT, VT-x, vmx)
  • Extensiones de virtualización AMD (AMD-V, SVM)

La mayoría de los procesadores modernos admiten estas extensiones de virtualización. Si no sabes con certeza si tu procesador admite estas extensiones, verifica las especificaciones en el sitio del fabricante. Si no admite alguna, 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, no puedes ejecutar software que use otra tecnología de virtualización al mismo tiempo que ejecutas un emulador acelerado por VM. Por ejemplo, VirtualBox, VMWare y Docker actualmente usan una tecnología de virtualización diferente, por lo que no puedes ejecutarlos al mismo tiempo que el emulador acelerado.

Acerca de los hipervisores

La aceleración de VM requiere un hipervisor.

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.

Deberás elegir el hipervisor más conveniente según el sistema operativo y la configuración de tu computadora. Para obtener más información, consulta una de 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 tu 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
HAXM version 7.3.2 (4) is installed and usable.
accel

macOS:

janedoe:~/Android$ ./sdk/emulator/emulator -accel-check
accel:
0
HAXM version 7.3.2 (4) is installed and usable.
accel

Linux:

janedoe-macbookpro:Android janedoe$ ./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 tres hipervisores: Hardware Accelerated Execution Manager (HAXM) de Intel, el controlador del hipervisor de Android Emulator para procesadores AMD o Windows Hypervisor Platform (WHPX).

Cómo elegir un hipervisor en Windows

Usa los siguientes criterios para determinar qué hipervisor debes usar:

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

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

Hyper-V debe estar inhabilitado para usar HAXM de Intel o el controlador del hipervisor de Android Emulator para procesadores AMD. Sin embargo, desmarcar "Hyper-V" en el diálogo Características de Windows no garantiza que se haya inhabilitado Hyper-V. Muchas características en Windows 10 habilitarán Hyper-V de manera implícita. Es posible que los usuarios ni siquiera sepan que Hyper-V está activado cuando habilitan una de estas características.

Hasta donde sabemos, incluyen Virtual Machine Platform, Windows Hypervisor Platform, Windows Sandbox, Core Isolation y 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 necesita Hyper-V. Esta lista no es exhaustiva, así que avísanos por medio de nuestro registro de errores si encuentras un elemento que debería incluirse aquí.

Vuelve a verificar que también se desactiven las funciones mencionadas anteriormente 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 el diálogo Características de Windows. Cuando esto ocurra, informa el error en el detector de problemas de Microsoft.

Cómo configurar la aceleración de VM usando HAXM de Intel 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 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).
  • Para usar HAXM de Intel en Windows 8 o 10, debes desactivar Hyper-V en el diálogo Características de Windows.
    Nota: Si instalas ciertos programas, es posible que se vuelva a activar Hyper-V. Consulta Cómo inhabilitar Hyper-V para obtener más detalles.

Para instalar el controlador de HAXM de Intel, sigue estos pasos:

  1. Abre SDK Manager.
  2. Haz clic en la pestaña SDK Update Sites y, luego, 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 HAXM de Intel, confirma que el controlador de virtualización funcione correctamente. Para ello, ingresa el siguiente comando en una ventana del símbolo del sistema:

    sc query intelhaxm
    

    Deberías ver un mensaje de estado con la siguiente información:

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

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

Puedes ajustar la cantidad de memoria disponible para la extensión del kernel de HAXM de Intel ejecutando nuevamente el instalador.

Si quieres desinstalar HAXM de Intel, utiliza el instalador o hazlo desde el Panel de control de Windows. Antes de desinstalar HAXM de Intel, desactiva los emuladores de x86 que se estén ejecutando.

Cómo configurar la aceleración de VM utilizando el controlador del hipervisor de Android Emulator para procesadores AMD en Windows

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

  • Procesador AMD con tecnología de máquina virtual segura (SVM)
  • Windows 10, Windows 8 o Windows 7 de 64 bits (las versiones de 32 bits no son compatibles).
  • Para usar el controlador del hipervisor de Android Emulator para procesadores AMD en Windows 8 o 10, debes desactivar Hyper-V en el diálogo Características de Windows.
    Nota: Si instalas ciertos programas, es posible que se vuelva a activar Hyper-V. Consulta Cómo inhabilitar Hyper-V para obtener más detalles.

El controlador del hipervisor de Android Emulator para procesadores AMD se puede instalar a través de SDK Manager en Android Studio 4.0 Canary 5 o una versión posterior (ver a continuación). Para instalar desde SDK Manager, sigue estos pasos:

  1. Abre Tools->SDK Manager.
  2. Haz clic en la pestaña SDK Tools y selecciona Android Emulator Hypervisor Driver for AMD Processors.
  3. Haz clic en OK para descargar e instalar el controlador del hipervisor de Android Emulator para procesadores AMD.
  4. Después de la instalación, ingresa el siguiente comando en una ventana del símbolo del sistema para confirmar que funcione correctamente:

    sc query gvm
    

    Deberías ver un mensaje de estado con la siguiente información:

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

    El siguiente mensaje de error significa que la SVM no está habilitada en tu BIOS o que Hyper-V no está inhabilitado (consulta Cómo inhabilitar Hyper-V).

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

El controlador del hipervisor de Android Emulator para procesadores AMD también se puede descargar y, luego, instalar desde github. Después de descomprimir el paquete del controlador, ejecuta "silent_install.bat" en un símbolo del sistema con privilegios de administrador. Si se completa correctamente una instalación nueva, se mostrará el siguiente resultado:

La actualización de una instalación generaría el siguiente resultado, que incluye mensajes relacionados con la desinstalación del controlador anterior:

Puedes desinstalar el controlador del hipervisor de Android Emulator para procesadores AMD con los siguientes comandos en un símbolo del sistema con privilegios de administrador.

   sc stop gvm
   sc delete gvm

Nota: Cierra los emuladores de x86 antes de desinstalar el controlador del hipervisor de Android Emulator para procesadores AMD.

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 la tecnología de virtualización (VT-x), las tablas de páginas extendidas (EPT) y las funciones de invitado sin restricciones (UG). Debe estar habilitada la opción VT-x en la configuración del BIOS de tu computadora.
  • Procesadores AMD: Se recomienda el procesador AMD Ryzen. Deben estar habilitadas la virtualización o la SVM en la configuración del BIOS de tu computadora.
  • Android Studio 3.2 Beta 1 o versiones posteriores (descarga desde developer.android.com).
  • Android Emulator versión 27.3.8 o posterior (descarga con SDK Manager).
  • Windows 10 con actualización de abril de 2018 o posterior.

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 características 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 en macOS

De forma predeterminada, en macOS X 10.10 Yosemite o posterior, Android Emulator utiliza Hypervisor.Framework integrado y recurre a HAXM de Intel si no se puede inicializar Hypervisor.Framework.

Para usar la aceleración de VM en macOS cuando Hypervisor.Framework no está disponible, debes instalar la extensión del kernel de HAXM de Intel.

Para instalar la extensión del kernel de HAXM de Intel, sigue estos pasos:

  1. Abre SDK Manager.
  2. Haz clic en la pestaña SDK Update Sites y, luego, 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_ExecutionManager/IntelHAXMversion.dmg
  5. Sigue las instrucciones en pantalla para completar la instalación.
  6. Una vez finalizada la instalación, confirma que la nueva extensión del kernel funcione correctamente; para ello, abre una ventana de terminal y ejecuta el siguiente comando:

    kextstat | grep intel
    

    Deberías ver un mensaje de estado con el siguiente nombre de la extensión, lo que indica que la extensión del kernel está cargada:

    com.intel.kext.intelhaxm
    

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

Puedes ajustar la cantidad de memoria disponible para la extensión del kernel de HAXM de Intel ejecutando nuevamente el instalador.

Si quieres dejar de usar la extensión del kernel de HAXM de Intel, debes desinstalarla. Antes de desinstalarla, desactiva los emuladores de x86 que se estén ejecutando y, luego, ejecuta el siguiente comando en una ventana de terminal:

sudo /System/Library/Extensions/intelhaxm.kext/Contents/Resources/uninstall.sh

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

$ sudo apt-get install cpu-checker
$ egrep -c '(vmx|svm)' /proc/cpuinfo
12
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

Cómo instalar KVM en Linux

Usa el siguiente comando para instalar KVM:

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