O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

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

O Android Emulator pode usar recursos de aceleração de hardware para melhorar o desempenho, radicalmente em alguns casos. 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 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 a partir da linha de comando, também poderá modificar a configuração de aceleração gráfica no AVD para essa instância de dispositivo virtual.

Requisitos

Para usar aceleração gráfica, seu ambiente de desenvolvimento precisa atender aos seguintes requisitos:

  • 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 página 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 a partir da 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 baseada 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, poderá ser 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 ANGLE será semelhante ao modo host, porque 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 suspenso na versão 27.0.2. Use swiftshader_indirect.
  • angle: uso suspenso na versão 27.0.2. Em vez disso, use angle_indirect (somente para Windows).
  • mesa: uso suspenso 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. 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: versão 17 no mínimo. A versão recomendada é 26.1.1 ou mais recente.
  • AVD com uma imagem de sistema baseada em x86, disponível para Android 2.3.3 (API de nível 10) e mais recente.

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 é compatível com essas extensões, verifique as especificações do processador no site do fabricante. Se o processador não for compatível com 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.

Sem um hipervisor, o emulador precisa traduzir o código de máquina da VM bloco por bloco, para adequar-se à 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 mais indicado para você depende do sistema operacional e da configuração do seu computador. Para ver mais informações, consulte uma das seções a seguir:

Verificar se há um hipervisor instalado

Você pode usar a opção de linha de comando -accel-check do emulador para verificar se um hipervisor está atualmente 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:~/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.

Configurar a aceleração de VM no Windows

A aceleração de VM no Windows pode usar um dos três hipervisores: o Intel Hardware Accelerated Execution Manager (HAXM), o driver de hipervisor do Android Emulator para processadores AMD ou a Plataforma de Hypervisor do Windows (WHPX).

Escolher um hipervisor no Windows

Use os critérios a seguir para determinar qual hipervisor deve ser usado:

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 o 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 o WHPX.

Verificar 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 de recursos do Windows pode não garantir que o Hyper-V seja desativado. Alguns recursos no Windows 10 ativarão o Hyper-V implicitamente. Talvez os usuários nem saibam que o Hyper-V está ativado quando ativam um desses recursos.

Pelo que sabemos, isso inclui a Plataforma de máquina virtual, a Plataforma de Hipervisor do Windows, o Sandbox do Windows, o Isolamento de núcleoe o Protetor de credenciais. Além disso, o subsistema Windows para Linux versão 2 requer a Plataforma de máquina virtual, o que significa implicitamente que requer o Hyper-V. Esta lista não está completa. Informe-nos no rastreador de bugs se você encontrar um item que precisa ser incluído aqui.

Verifique 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).
  • Para usar o Intel HAXM no Windows 10 ou 8, desative o Hyper-V na caixa de diálogo "Recursos do Windows".
    Observação: a instalação de determinados softwares pode ativar o Hyper-V novamente. Consulte Desativar o Hyper-V para mais detalhes.

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 digitando o seguinte em uma janela do prompt de comando:

    sc query intelhaxm
    

    Você verá uma mensagem de status que inclui as seguintes informações:

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

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

É possível ajustar a quantidade de memória disponível para a extensão do kernel do Intel HAXM executando 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 que estiverem 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).
  • Para usar o driver do hipervisor do Android Emulator para processadores AMD no Windows 10 ou 8, desative o Hyper-V na caixa de diálogo "Recursos do Windows".
    Observação: a instalação de determinados softwares pode ativar o Hyper-V novamente. Consulte Desativar o Hyper-V para mais detalhes.

O driver do hipervisor do Android Emulator para processadores AMD pode ser instalado por meio do SDK Manager no Android Studio 4.0 Canary 5 ou mais recente ou no GitHub (veja abaixo). Para instalar no SDK Manager, siga estas etapas:

  1. Abra 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 digitando o seguinte comando em uma janela do prompt de comando:

    sc query gvm
    

    Você verá uma mensagem de status que 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 no seu BIOS ou que o Hyper-V não está desativado (consulte Desativar o Hyper-V).

    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 (link em inglês). Depois de descompactar o pacote do driver, execute "silent_install.bat" em um prompt de comando com privilégios de administrador. A conclusão de uma nova instalação teria a seguinte saída:

O upgrade de uma instalação resultaria na seguinte saída, que inclui mensagens sobre a desinstalação do driver antigo:

Você pode desinstalar o driver do hipervisor do Android Emulator para processadores AMD usando os comandos a seguir em um prompt de comando com privilégios de administrador.

   sc stop gvm
   sc delete gvm

Observação: desligue todos os emuladores x86 antes de desinstalar o driver do hipervisor do Android Emulator para processadores AMD.

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: compatibilidade com os 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 (download em developer.android.com).
  • Android Emulator versão 27.3.8 ou posterior (download por meio do SDK Manager).
  • Windows 10 com atualização de abril de 2018 ou posterior.

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 se Hypervisor.Framework falhar ao inicializar.

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. Quando a instalação terminar, verifique se a nova extensão do kernel está funcionando corretamente abrindo uma janela de terminal e executando o seguinte comando:

    kextstat | grep intel
    

    Você verá uma mensagem de status contendo o seguinte nome de extensão, indicando que a extensão do kernel foi carregada:

    com.intel.kext.intelhaxm
    

Para ver mais informações, consulte Instruções de instalação do Intel HAXM (link em inglês).

É possível ajustar a quantidade de memória disponível para a extensão do kernel do Intel HAXM executando o instalador novamente.

Para não usar mais a extensão do kernel do Intel HAXM, desinstale-a. Antes da desinstalação, desligue todos os emuladores x86 que estiverem em execução no momento. Em seguida, execute o seguinte comando em uma janela de terminal:

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

Configurar a aceleração de VM no Linux

Sistemas Linux são compatíveis com a aceleração de VMs por meio do pacote de software KVM (link 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 da KVM no Ubuntu (link 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: compatibilidade com a 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:

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

Instalar a KVM no Linux

Use o seguinte comando para instalar a KVM:

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