Configurar a aceleração de hardware para o Android Emulator

O emulador vai ser melhor executado se puder usar o hardware da máquina, como a CPU, a GPU e o modem, em vez de ser executado como um software puro. A capacidade de usar o hardware da sua máquina para melhorar o desempenho é chamada de aceleração de hardware.

O emulador pode usar a aceleração de hardware para melhorar a experiência de duas maneiras principais:

  • Aceleração gráfica para melhorar a renderização de telas
  • Aceleração de máquina virtual (VM) para melhorar a velocidade de execução

A aceleração de hardware é ativada por padrão na maioria das máquinas. Se ela não estiver ativada na sua máquina, esta página descreve como configurar a aceleração de elementos gráficos e da máquina virtual (VM) para ter um desempenho melhor do emulador.

Configurar a aceleração gráfica

A aceleração gráfica usa o hardware do computador (geralmente a GPU) para tornar a renderização da tela mais rápida. Os dispositivos Android usam o OpenGL para sistemas incorporados (OpenGL ES ou GLES) para renderizar imagens 2D e 3D na tela.

Ao criar um dispositivo virtual Android (AVD, na sigla em inglês) no AVD Manager, você pode especificar se o emulador vai usar hardware ou software para emular a GPU do AVD. A aceleração de hardware é recomendada e normalmente é mais rápida. No entanto, talvez seja necessário usar a aceleração de software caso o computador use drivers gráficos incompatíveis com o emulador.

Por padrão, o emulador decide entre a aceleração de hardware ou de software com base na configuração do computador. Se o hardware e os drivers da GPU forem compatíveis, o emulador usará a GPU. Caso contrário, o emulador usa aceleração de software, usando a CPU do seu computador, para simular o processamento da GPU.

Se você iniciar o emulador pela linha de comando, também poderá substituir a configuração de aceleração gráfica no AVD por essa instância de dispositivo virtual.

Requisitos

Para usar a aceleração gráfica, seu ambiente de desenvolvimento precisa ter o seguinte:

  • Ferramentas do SDK: a última versão é recomendada (versão 17 no mínimo).
  • Plataforma do SDK: a última versão é recomendada (Android 4.0.3, Revisão 3, no mínimo).

Configurar a aceleração gráfica no AVD Manager

Para configurar a aceleração gráfica para um AVD, siga estas etapas:

  1. Abra o AVD Manager.
  2. Crie um novo AVD ou edite um AVD existente.
  3. Na janela Verify Configuration, encontre a seção Emulated Performance.
  4. Selecione um valor para a opção Graphics:.
  5. Clique em Finish.

Configurar a aceleração gráfica na linha de comando

Para especificar um tipo de aceleração gráfica ao executar um AVD na linha de comando, inclua a opção -gpu, como mostrado no exemplo a seguir:

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

O valor de mode pode ser definido como uma das seguintes opções:

  • auto: permite que o emulador escolha entre a aceleração gráfica de hardware ou de software com base na configuração do computador.
  • host: usa a GPU do computador para aceleração de hardware. Geralmente, essa opção proporciona a melhor qualidade gráfica e desempenho para o emulador. No entanto, se os drivers gráficos apresentarem problemas durante a renderização com o OpenGL, talvez seja necessário usar as opções swiftshader_indirect ou angle_indirect.
  • swiftshader_indirect: usa uma variante compatível de inicialização rápida do SwiftShader para renderizar gráficos usando a aceleração de software. Essa opção é uma boa alternativa para o modo host quando o computador não pode usar a aceleração de hardware.
  • angle_indirect: (somente para Windows) usa uma variante compatível com Quick Boot de ANGLE Direct3D para renderizar gráficos usando a aceleração de software. Essa opção é uma boa alternativa para o modo host quando o computador não pode usar a aceleração de hardware. Na maioria dos casos, o desempenho do ANGLE é semelhante ao uso do modo host, porque o ANGLE usa o Microsoft DirectX em vez do OpenGL.

    No Windows, os drivers do Microsoft DirectX geralmente apresentam menos problemas que os drivers do OpenGL. Essa opção usa o Direct3D 11 e requer o Windows 10, Windows 8.1 ou Windows 7 SP1 com a Atualização da Plataforma para o Windows 7.

  • guest: usa a renderização de software do lado do convidado. Essa opção oferece a menor qualidade gráfica e desempenho para o emulador.

As seguintes opções mode estão desativadas:

  • swiftshader: uso descontinuado na versão 27.0.2. Use swiftshader_indirect.
  • angle: uso descontinuado na versão 27.0.2. Em vez disso, use angle_indirect (somente para Windows).
  • mesa: uso descontinuado na versão 25.3. Use swiftshader_indirect.

Ativar renderização com o Skia para a IU Android

Ao usar imagens para API de nível 27 ou mais recente, o emulador pode renderizar a IU Android com o Skia (link em inglês). O Skia ajuda o emulador a renderizar elementos gráficos com mais facilidade e eficiência.

Para ativar a renderização com Skia, use os seguintes comandos no shell adb:

su
setprop debug.hwui.renderer skiagl
stop
start

Configurar a aceleração de VM

A aceleração de VM usa o processador do computador para melhorar significativamente a velocidade de execução do emulador. Uma ferramenta denominada hipervisor gerencia essa interação usando extensões de virtualização oferecidas pelo processador do computador. Esta seção descreve os requisitos para o uso da aceleração de VM e também explica como configurá-la em cada sistema operacional.

Requisitos gerais

Para usar a aceleração de VM com o emulador, seu computador precisa atender aos requisitos gerais desta seção. O computador também precisa atender a outros requisitos específicos do sistema operacional.

Requisitos do ambiente de desenvolvimento

Para usar a aceleração de VM, seu ambiente de desenvolvimento precisa atender aos seguintes requisitos:

  • Ferramentas do SDK: mínimo da versão 17. A versão recomendada é a 26.1.1 ou mais recente.
  • AVD: a versão necessária do Android está descrita na tabela a seguir.

    Arquitetura de CPU Requisito de imagem do sistema
    X86_64 Imagens do sistema x86 ou x86_64 para o Android 2.3.3 (nível 10 da API) e mais recentes.
    ARM64 Imagens do sistema arm64-v8a para o Android 5.0 (nível 21 da API) e mais recentes.

Requisitos de extensão de virtualização

Além dos requisitos do ambiente de desenvolvimento, o processador do computador precisa oferecer suporte a extensões de virtualização. Confira os processadores com suporte:

  • Processadores Intel com Tecnologia de virtualização Intel (VT-x, vmx), como Intel Core iX e Intel Core Ultra
  • Processadores AMD com AMD-V (SVM), como processadores AMD Ryzen
  • Apple Silicon

Outros requisitos para processadores Intel e AMD:

A tradução de endereços de segundo nível (Intel EPT ou AMD RVI) é necessária para processadores Intel e AMD. A maioria dos processadores Intel e AMD modernos oferecem suporte à tradução de endereços de segundo nível. Os únicos processadores Intel ou AMD com extensões de virtualização que podem não oferecer tradução de páginas de segundo nível são da primeira geração.

Caso você não saiba se o processador oferece suporte às extensões necessárias, confira as especificações do processador no site do fabricante. Se o processador não oferecer suporte a essas extensões, não será possível usar a aceleração de VM.

Restrições

A aceleração de VM tem as seguintes restrições:

  • Não é possível executar um emulador acelerado por VM dentro de outra VM, como uma VM hospedada pelo VirtualBox, VMWare ou Docker. Execute um emulador acelerado por VM diretamente no computador host.
  • Dependendo do sistema operacional e do hipervisor, não é possível executar um software que use outra tecnologia de virtualização ao mesmo tempo que um emulador acelerado por VM. Exemplos desse tipo de software incluem, entre outros, soluções de máquina virtual, determinados programas antivírus e algumas soluções contra golpes. A situação é observada principalmente no Windows com o Hyper-V desativado. A maioria desses softwares pode coexistir com o Android Emulator sem nenhum problema. No entanto, quando ocorrem conflitos, é recomendável não executar o emulador acelerado por VM ao mesmo tempo que esse software.

Sobre hipervisores

A aceleração de VM requer um hipervisor, uma ferramenta que usa extensões de virtualização fornecidas pelo processador do computador.

Sem um hipervisor e a aceleração de VM, o emulador precisa traduzir o código de máquina da VM bloco por bloco para se adequar à arquitetura do computador host. Esse processo pode ser bastante lento. Com um hipervisor, quando a VM e a arquitetura do computador host correspondem, o emulador pode executar o código diretamente no processador host usando o hipervisor. Essa melhoria aumenta significativamente a velocidade e o desempenho do emulador.

O hipervisor que funciona melhor para você depende do sistema operacional e da configuração do seu computador. Para saber mais, consulte uma das seções a seguir:

Conferir se há um hipervisor instalado

Você pode usar a opção de linha de comando -accel-check do emulador para conferir se um hipervisor está instalado no computador.

Os exemplos a seguir mostram como usar a opção accel-check do emulador. Em cada exemplo, Sdk é o local do SDK do Android:

Windows:

c:\Users\janedoe\AppData\Local\Android> Sdk\emulator\emulator -accel-check
accel:
0
AEHD (version 2.2) is installed and usable.
accel
Há várias opções de hipervisor no Windows. O que aparecer para você pode ser diferente do nosso exemplo. A mensagem pode mostrar uma destas palavras-chave: GVM(nome anterior do 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.

Configurar a aceleração de VM no Windows

A aceleração de VM no Windows pode usar um destes dois hipervisores:

  • A plataforma de hipervisor do Windows (WHPX, na sigla em inglês)
  • O driver do hipervisor do Android Emulator (AEHD, na sigla em inglês)

Escolher um hipervisor no Windows

Esta seção mostra os critérios para determinar qual hipervisor usar. O processo de configuração da aceleração de VM usando cada hipervisor é descrito nas seções a seguir.

Critérios Hipervisor
É necessário executar o Hyper-V ao mesmo tempo que o Android Emulator. Use WHPX.
Não é necessário executar o Hyper-V ao mesmo tempo que o Android Emulator. Use o driver do hipervisor do Android Emulator.

Configurar a aceleração de VM usando a Plataforma de Hipervisor do Windows

Antes de ativar o WHPX, seu computador precisa atender aos seguintes requisitos:

  • Processadores Intel: suporte a recursos de Tecnologia de virtualização (VT-x), Tabelas de páginas estendidas (EPT, na sigla em inglês) e Unrestricted Guest (UG). A VT-x precisa estar ativada nas configurações do BIOS de computador.
  • Processadores AMD: o processador AMD Ryzen é recomendado. A virtualização ou o SVM precisa estar ativado nas configurações do BIOS do computador.
  • Android Studio 3.2 Beta 1 ou mais recente
  • Android Emulator versão 27.3.8 ou mais recente
  • Windows 10 ou mais recente

Para instalar o WHPX no Windows, siga estas etapas:

  1. Na área de trabalho do Windows, clique com o botão direito no ícone do Windows e selecione Apps and features.
  2. Em Related settings, clique em Programs and Features.
  3. Clique em Turns Windows Features on or off.
  4. Selecione Windows Hypervisor Platform.

  5. Clique em OK.

  6. Quando a instalação terminar, reinicie o computador.

Configurar a aceleração de VM usando o driver hipervisor do Android Emulator (AEHD, na sigla em inglês) no Windows

Antes de instalar e usar o driver do hipervisor do Android Emulator, seu computador precisa atender aos seguintes requisitos:

  • Processadores Intel ou AMD com extensão de virtualização
  • Windows 11 ou Windows 10 de 64 bits (não há suporte para o Windows de 32 bits)

    Os usuários do Windows 8.1, Windows 8 e Windows 7 podem continuar usando o AEHD 1.7 ou versões anteriores. No entanto, não haverá suporte para esses cenários.

  • O Hyper-V precisa ser desativado na caixa de diálogo "Recursos do Windows".

    Certos componentes do Windows podem ativar o hipervisor Hyper-V sem ativar o Hyper-V na caixa de diálogo "Recursos do Windows", como o Isolamento de Core oferecido pelo Windows Defender. Nesses casos, use o WHPX.

Em processadores AMD, o driver do hipervisor do Android Emulator pode ser instalado usando o SDK Manager no Android Studio 4.0 Canary 5 ou mais recente.

Em processadores Intel, o driver do hipervisor do Android Emulator pode ser instalado usando o SDK Manager no Android Studio Flamingo ou mais recente.

Para instalar no SDK Manager, siga estas etapas:

  1. Selecione Tools> SDK Manager.
  2. Clique na guia SDK Tools e selecione Android Emulator hypervisor driver.
  3. Clique em OK para fazer o download e instalar o driver do hipervisor do Android Emulator.
  4. Após a instalação, confirme se o driver está funcionando corretamente usando o seguinte comando:

    AEHD 2.1 e mais recentes

    sc query aehd
    

    Uma mensagem de status inclui as seguintes informações:

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

    A mensagem de erro a seguir significa que a extensão de visualizações não está ativada no seu BIOS ou que o Hyper-V não está desativado:

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

    AEHD 2.0 e versões anteriores

    sc query gvm
    

    Uma mensagem de status inclui as seguintes informações:

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

    A mensagem de erro a seguir significa que a extensão de visualizações não está ativada no seu BIOS ou que o Hyper-V não está desativado:

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

Também é possível fazer o download e instalar o driver do hipervisor do Android Emulator no GitHub (em inglês). Depois de descompactar o pacote do driver, execute silent_install.bat em uma linha de comando com privilégios de administrador.

Desinstale o driver do hipervisor do Android Emulator usando estes comandos em uma linha de comando com privilégios de administrador:

AEHD 2.1 e mais recentes

   sc stop aehd
   sc delete aehd

AEHD 2.0 e versões anteriores

   sc stop gvm
   sc delete gvm

Configurar a aceleração de VM no macOS

No MacOS, o Android Emulator usa o Hypervisor.Framework integrado, que requer o MacOS v10.10 (Yosemite) ou mais recente.

Configurar a aceleração de VM no Linux

Sistemas Linux oferecem suporte à aceleração de VMs pelo pacote de software KVM (em inglês). Siga as instruções para instalar a KVM no sistema Linux e verifique se a KVM está ativada. Para sistemas Ubuntu, consulte Instalação do KVM no Ubuntu (em inglês).

Requisitos

A execução da KVM requer permissões de usuário específicas. Verifique se você tem permissões suficientes conforme especificado nas instruções de instalação da KVM.

Para usar a aceleração de VM no Linux, o computador também precisa atender a estes requisitos:

  • Para processadores Intel: suporte à Tecnologia de virtualização (VT-x), recursos Intel EM64T (Intel 64) e a funcionalidade Bit de desativação de execução (Bit XD) ativada.
  • Para processadores AMD: compatibilidade com AMD Virtualization (AMD-V).

Verificar se a KVM está instalada no Linux

Você pode usar a opção de linha de comando do emulador -accel-check para verificar se a KVM está instalada. Como alternativa, é possível instalar o pacote cpu-checker que contém o comando kvm-ok.

O exemplo a seguir mostra como usar o comando kvm-ok:

  1. Instale o pacote cpu-checker:

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

    Uma saída de 1 ou mais significa que há suporte para virtualização. Uma saída de 0 significa que a CPU não oferece suporte à virtualização de hardware.

  2. Execute o comando kvm-ok:

    sudo kvm-ok
    

    Saída esperada:

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

    Se você vir o erro a seguir, isso significa que ainda pode executar máquinas virtuais. No entanto, sua máquina virtual fica mais lenta sem as extensões KVM.

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

Instalar a KVM no Linux

Use o comando a seguir para instalar a KVM:

Cosmic (18.10) ou mais recente:

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

Lucid (10.04) ou mais recente:

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

Karmic (9.10) ou anterior:

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

Guia de configuração antigo para aceleração de VM no Windows

O HAXM foi descontinuado no emulador 33.x.x.x, já que a Intel desativou o desenvolvimento dele. O driver do hipervisor do Android Emulator (AEHD, na sigla em inglês) substitui o Intel HAXM em processadores Intel.

Escolher um hipervisor no Windows (emulador 32.x.x.x ou anterior)

Critérios Hipervisor
Você tem um processador Intel e não precisa executar o Hyper-V simultaneamente com o Android Emulator. Use o Intel HAXM.
Você tem um processador AMD e não precisa executar o Hyper-V simultaneamente com o Android Emulator. Use o driver do hipervisor do Android Emulator.
Você tem um processador Intel ou AMD e precisa executar o Hyper-V ao mesmo tempo que o Android Emulator. Use WHPX.

Configurar a aceleração de VM usando o Intel HAXM no Windows

Antes de instalar e usar o Intel HAXM, seu computador precisa atender aos seguintes requisitos:

  • Processador Intel com Tecnologia de virtualização (VT-x), recursos Intel EM64T (Intel 64) e a funcionalidade Bit de desativação de execução (Bit XD) ativada.
  • Windows 11, Windows 10, Windows 8 ou Windows 7 de 64 bits ou a versão de 32 bits do sistema operacional em um processador de 64 bits.
  • No Windows 11, Windows 10 ou Windows 8, desative o Hyper-V na caixa de diálogo "Recursos do Windows".

Para instalar o driver do Intel HAXM, siga estas etapas:

  1. Abra o SDK Manager.
  2. Clique na guia SDK Update Sites e selecione Intel HAXM.
  3. Clique em OK.
  4. Quando o download terminar, execute o instalador.

    Normalmente, você encontra o instalador no seguinte local: sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe

  5. Use o assistente para concluir a instalação.

  6. Depois de instalar o Intel HAXM, verifique se o driver de virtualização está funcionando corretamente usando o seguinte comando:

    sc query intelhaxm
    

    Uma mensagem de status inclui as seguintes informações:

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

Para saber mais, consulte as Instruções de instalação do Intel HAXM no Windows (em inglês).

Para desinstalar o Intel HAXM, use o instalador ou o Painel de Controle do Windows. Antes de desinstalar o Intel HAXM, desligue todos os emuladores x86 em execução.

Verificar de novo ao desativar o Hyper-V

O Hyper-V precisa ser desativado para usar o driver do hipervisor do Android Emulator ou o Intel HAXM. No entanto, desmarcar "Hyper-V" na caixa de diálogo "Recursos do Windows" não garante que o Hyper-V seja desativado.

Alguns recursos no Windows 10 ativam o Hyper-V implicitamente. Talvez os usuários nem saibam que o Hyper-V é ativado por um desses recursos. Eles incluem:

  • Plataforma de máquina virtual
  • Plataforma de hipervisor do Windows
  • Sandbox do Windows
  • Isolamento de núcleos
  • Credential Guard

Além disso, o subsistema Windows para Linux versão 2 exige uma plataforma de máquina virtual, o que significa que exige implicitamente o Hyper-V. Essa lista não está completa. Informe um bug se você encontrar um item que precisa ser incluído aqui.

Confira se os recursos listados acima também estão desativados ao desativar o Hyper-V. Consulte a documentação da Microsoft e os exemplos abaixo para descobrir como cada recurso pode ser desativado.

Algumas plataformas não desativam imediatamente o Hyper-V quando ele é desligado. Quando isso ocorre, não há erro retornado pelo SO Windows, e o Hyper-V aparece desativado na caixa de diálogo "Recursos do Windows". Informe um bug no rastreador de problemas da Microsoft quando isso ocorrer.