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 está 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
WHPX(10.0.22631) 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. Por exemplo, talvez a mensagem tenha algumas destas palavras-chave: AEHD, GVM (nome anterior do AEHD).

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)

A plataforma de hipervisor do Windows usa o hipervisor Hyper-V fornecido pelo Windows e oferece a melhor compatibilidade com redução de instabilidade. Se possível, use WHPX.

Se o sistema não oferecer suporte à WHPX ou se você tiver outras dúvidas sobre o uso, 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 no ícone do Windows para abrir o menu Iniciar.
  2. Na barra de pesquisa, digite Ativar ou desativar recursos do Windows.

    O painel de controle Turn Windows features on or off vai aparecer e ser selecionado.

  3. Pressione a tecla Enter ou clique em Turns Windows Features on or off para abrir o painel de controle.

  4. Marque a caixa ao lado de 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.

  • Os recursos que também usam o hipervisor do Windows Hyper-V precisam ser desativados na caixa de diálogo "Recursos do Windows".

    Alguns componentes do Windows também ativam e usam o hipervisor do Windows Hyper-V, mesmo quando a plataforma do hipervisor do Windows não está selecionada na caixa de diálogo "Recursos do Windows". Isso inclui recursos de segurança, como Hyper-V, isolamento de núcleo e outros. O recurso Hyper-V não é o mesmo que o hipervisor do Hyper-V. Se você precisar desses recursos, 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. No entanto, o Android Studio pode exigir uma versão mais recente para o macOS. Nesses casos, siga os requisitos do sistema do Android Studio.

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 desinstalação do Intel HAXM

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.

É recomendável remover o Intel HAXM completamente do sistema Windows, a menos que você tenha outro software instalado que dependa do HAXM e escolha manter e gerenciar o Intel HAXM por conta própria.

Para desinstalar o Intel HAXM, siga estas etapas:

Verificar se o Intel HAXM está instalado

Para determinar se o Intel HAXM está instalado no seu sistema Windows, abra um console de comando do Windows e execute o seguinte comando:

   sc query intelhaxm

Se o Intel HAXM estiver instalado e em execução, a mensagem a seguir vai aparecer na saída do comando.

Se o Intel HAXM estiver instalado, mas desativado, a mensagem a seguir vai aparecer na saída do comando.

Em ambos os casos, independentemente de o Intel HAXM estar em execução ou desativado, ele está instalado. Você precisa ir para a próxima etapa para continuar a desinstalar o Intel HAXM.

Se o Intel HAXM não estiver instalado, a seguinte mensagem vai aparecer.

Desinstalar o Intel HAXM usando o SDK manager do Android Studio

Abra o SDK Manager no Android Studio, acesse a guia "SDK Tools" e navegue até a linha "Intel x86 Emulator Accelerator (HAXM installer) - Deprecated". Ele vai ficar parecido com a captura de tela a seguir.

Desmarque a caixa de seleção, conforme mostrado na captura de tela a seguir.

Clique no botão "Aplicar" e a caixa de diálogo a seguir vai aparecer.

Quando o Intel HAXM for desinstalado, você vai receber a seguinte mensagem: A desinstalação foi concluída, e você pode parar por aqui.

Em caso de erros, prossiga para a próxima etapa.

Desinstale o Intel HAXM usando as "configurações" do Windows.

Abra as "configurações" do Windows e navegue até "Apps > Apps instalados".

Localize a entrada "Gerenciador de execução com aceleração de hardware da Intel" e clique em "Desinstalar", conforme mostrado na captura de tela a seguir.

O desinstalador do Intel HAXM vai ser executado e informar o resultado. Se a desinstalação for bem-sucedida, acesse Excluir o pacote de instalação do Intel HAXM. Caso contrário, continue para a próxima etapa.

Desinstalar usando a linha de comando

  1. Pare o serviço Intel HAXM executando "sc stop intelhaxm". Você vai ver a saída a seguir.

  2. Exclua o serviço Intel HAXM executando "sc delete intelhaxm". Você vai ver o resultado abaixo.

  3. Acesse Excluir o pacote de instalação do Intel HAXM.

Exclua o pacote de instalação do Intel HAXM.

Essa etapa só é necessária ao desinstalar o Intel HAXM usando as "configurações" do Windows ou a linha de comando. Sem essa etapa, o gerenciador de SDK do Android Studio pode continuar listando o Intel HAXM como "Installed".

O pacote de instalação está localizado em<sua pasta do SDK do Android>\extras\intel. Por padrão, o SDK do Android será instalado em "C:\Users\<Your Windows User ID >\AppData\Local\Android\Sdk". Confira o exemplo na captura de tela a seguir.