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

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

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 do 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 com uma imagem de sistema baseada em x86, disponível para o Android 2.3.3 (nível 10 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 ser compatível com uma das seguintes tecnologias de extensões de virtualização:

  • Extensões da Tecnologia de virtualização Intel (VT, VT-x, vmx)
  • Extensões da AMD Virtualization (AMD-V, SVM)

A maioria dos processadores modernos é compatível com essas extensões de virtualização. Se você não sabe se o processador tem suporte a essas extensões, verifique as especificações no site do fabricante. Se o processador não oferecer suporte a uma dessas 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 em que você executa um emulador acelerado por VM. Por exemplo, VirtualBox, VMWare e Docker usam outra tecnologia de virtualização atualmente. Sendo assim, não é possível executá-los simultaneamente com o emulador acelerado.

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, a VM e a arquitetura do computador host correspondem. Assim, 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
HAXM version 7.3.2 (4) is installed and usable.
accel

MacOS:

janedoe-macbookpro:Android janedoe$ ./Sdk/emulator/emulator -accel-check
accel:
0
HAXM version 7.3.2 (4) is installed and usable.
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 dos três hipervisores:

  • O Hardware Accelerated Execution Manager (HAXM) da Intel
  • O driver do hipervisor do Android Emulator para processadores AMD
  • A plataforma de hipervisor do Windows (WHPX)

Escolher um hipervisor no Windows

Use os critérios a seguir 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
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 Intel e precisa executar o Hyper-V simultaneamente com o Android Emulator. Use WHPX.
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 para processadores AMD.
Você tem um processador AMD e precisa executar o Hyper-V simultaneamente com o Android Emulator. Use WHPX.

Conferir novamente ao desativar o Hyper-V

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

Alguns recursos no Windows 10 vão ativar 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.

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 10, Windows 8 ou Windows 7 de 64 bits (ou versão de 32 bits do sistema operacional em um processador de 64 bits).
  • No Windows 10 ou 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 ajustar a quantidade de memória disponível para a extensão do kernel do Intel HAXM, execute o instalador novamente.

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.

Configurar a aceleração de VMs usando o driver do hipervisor do Android Emulator para processadores AMD no Windows

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

  • Processador AMD com a tecnologia Secure Virtual Machine (SVM).
  • Windows 10, Windows 8 ou Windows 7 de 64 bits (o Windows de 32 bits não é compatível).
  • No Windows 10 ou 8, desative o Hyper-V na caixa de diálogo "Recursos do Windows".

O driver do hipervisor do Android Emulator para processadores AMD pode ser instalado com o SDK Manager no Android Studio 4.0 Canary 5 ou mais recente ou no GitHub.

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 for AMD Processors.
  3. Clique em OK para fazer o download e instalar o driver do hipervisor do Android Emulator para processadores AMD.
  4. Após a instalação, confirme se o driver está funcionando corretamente usando o seguinte comando:

    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 o SVM não está ativado na sua 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.

Uma instalação bem-sucedida mostra a seguinte saída:

O upgrade de uma instalação resulta na seguinte saída, que inclui mensagens sobre o driver antigo que está sendo desinstalado:

Desinstale o driver do hipervisor do Android Emulator para processadores AMD usando os seguintes comandos em uma linha de comando com privilégios de administrador:

   sc stop gvm
   sc delete gvm

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 no macOS

No Mac OS X v10.10 Yosemite e mais recentes, o Android Emulator usa o Hypervisor.Framework integrado por padrão e volta a usar o HAXM Intel caso o Hypervisor.Framework falhe ao ser inicializado.

Para usar a aceleração de VM no macOS quando o Hypervisor.Framework não estiver disponível, instale a extensão do kernel do Intel HAXM.

Para instalar a extensão do kernel 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_ExecutionManager/IntelHAXMversion.dmg

  5. Siga as instruções na tela para concluir a instalação.

  6. Depois que a instalação for concluída, confirme se a nova extensão do kernel está funcionando corretamente com o seguinte comando de linha de comando:

    kextstat | grep intel
    

    Uma mensagem de status contém o seguinte nome de extensão, indicando que a extensão do kernel foi carregada:

    com.intel.kext.intelhaxm
    

Para saber mais, consulte as instruções de instalação do Intel HAXM.

Para ajustar a quantidade de memória disponível para a extensão do kernel do Intel HAXM, execute o instalador novamente.

Para não usar mais a extensão do kernel do Intel HAXM, desinstale-a. Antes de desinstalar, desligue todos os emuladores x86 em execução e execute o seguinte em uma linha de comando:

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

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:

    $ 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