Aceleração de hardware para o desempenho do emulador (HAXM do Hyper-V & )

Este artigo explica como usar os recursos de aceleração de hardware do computador para maximizar o desempenho do Android Emulator.

Com o Visual Studio, os desenvolvedores podem testar e depurar mais facilmente seus aplicativos Xamarin.Android usando o Android Emulator em situações em que um dispositivo Android não está disponível ou é impraticável. No entanto, o Android Emulator será executado muito lentamente se a aceleração de hardware não estiver disponível no computador em que será executado. Você pode melhorar significativamente o desempenho do Android Emulator usando imagens de dispositivo virtual x86 especiais, em conjunto com os recursos de virtualização do computador.

Cenário HAXM WHPX Hypervisor.Framework
Você tem um Processador Intel X X X
Você tem um Processador AMD X
Você deseja dar suporte ao Hyper-V X
Você deseja dar suporte à virtualização aninhada Limitado
Você deseja usar tecnologias como o Docker (com WSL2) X X

Acelerar emuladores de Android no Windows

As tecnologias de virtualização a seguir estão disponíveis para acelerar o Android Emulator:

  1. Hyper-V e WHPX (Plataforma de Hipervisor do Windows) da Microsoft. O Hyper-V é um recurso de virtualização de Windows que possibilita a execução de sistemas de computador virtualizados em um computador host físico.

  2. HAXM (Hardware Accelerated Execution Manager) da Intel. O HAXM é um mecanismo de virtualização para computadores que executam CPUs Intel.

Para obter a melhor experiência no Windows, recomendamos usar o WHPX para acelerar o Android Emulator. Caso o WHPX não esteja disponível em seu computador, o HAXM poderá ser usado. A aceleração de hardware será usada automaticamente pelo Android Emulator se os seguintes critérios forem atendidos:

  • A aceleração de hardware está disponível e habilitada em seu computador de desenvolvimento.

  • O emulador está executando uma imagem do sistema criada para um dispositivo virtual com base em x86.

Importante

Você não pode executar um emulador acelerado por VM dentro de outra VM, como uma VM hospedada por VirtualBox, VMware ou Docker (a menos que use WSL2). Execute o Android Emulator diretamente no hardware do sistema.

Para obter informações sobre como iniciar e depurar com o emulador do Android, consulte Depuração no Emulator do Android.

Acelerar com Hyper-V

Antes de habilitar o Hyper-V, leia a seção a seguir para verificar se seu computador tem suporte para ele.

Verificar o suporte para Hyper-V

O Hyper-V é executado na Plataforma de Hipervisor do Windows. Para usar o Android Emulator com o Hyper-V, o computador precisa atender aos seguintes critérios para dar suporte à Plataforma de Hipervisor do Windows:

  • O hardware do computador deve atender aos seguintes requisitos:

    • Uma CPU Intel ou AMD Ryzen de 64 bits com SLAT (Conversão de Endereços de Segundo Nível).
    • Suporte de CPU para a extensão do modo de monitor da VM (VT-c em CPUs Intel).
    • Mínimo de 4 GB de memória.
  • Na BIOS do computador, os itens a seguir devem estar habilitados:

    • Tecnologia de virtualização (pode ter um rótulo diferente dependendo do fabricante da placa-mãe).
    • Prevenção de Execução de Dados Baseada em Hardware.
  • O computador deve estar atualizado para com a atualização do Windows 10 de abril de 2018 (build 1803) ou posterior. Você pode verificar sua versão do Windows está atualizada executando as seguintes etapas:

    1. Na caixa de pesquisa do Windows, digite Sobre.

    2. Selecione Sobre seu PC nos resultados da pesquisa.

    3. Role para baixo na caixa de diálogo Sobre até a seção de especificações do Windows.

    4. Verifique se a versão é, pelo menos, a 1803:

      Windows specifications

Para verificar se o hardware e o software do computador são compatíveis com Hyper-V, abra um prompt de comando e digite o seguinte comando:

systeminfo

Se todos os requisitos listados do Hyper-V tiverem um valor de Sim, o computador poderá dar suporte a Hyper-V. Por exemplo:

Example systeminfo output

Habilitar a aceleração do Hyper-V

Se o computador atender aos critérios acima, use as seguintes etapas para acelerar o Android Emulator com o Hyper-V:

  1. Insira recursos do windows na caixa de pesquisa do Windows e selecione Ativar ou desativar recursos do Windows nos resultados da pesquisa. Na caixa de diálogo Recursos do Windows, habilite Hyper-V e Plataforma de Hipervisor do Windows:

    Enabling Hyper-V and Windows Hypervisor Platform

    Depois de fazer essas alterações, reinicie o computador.

Importante

Na atualização de outubro de 2018 do Windows 10 (RS5) e posteriores, será necessário habilitar somente o Hyper-V, já que ele usará o WHPX (Plataforma de Hipervisor do Windows) automaticamente.

  1. Instale o Visual Studio 15.8 ou posterior (esta versão do Visual Studio dá suporte ao IDE para execução do Android Emulator com Hyper-V).

  2. Instale o pacote 27.2.7 ou posterior do Android Emulator. Para instalar esse pacote, navegue até o Gerenciador de SDK do Android > para Ferramentas > no Visual Studio. Selecione a guia Ferramentas e verifique se a versão do emulador do Android é pelo menos 27.2.7. Também verifique se a versão do Android SDK Tools é a 26.1.1 ou posterior:

    Android SDKs and Tools dialog

Ao criar um dispositivo virtual (consulte Gerenciar dispositivos virtuais com o Android Gerenciador de Dispositivos), selecione uma imagem do sistema baseada em x86. Se você usar uma imagem de sistema baseada em ARM, o dispositivo virtual não será acelerado e será executado lentamente.

O Hyper-V agora deve estar habilitado e você pode executar o emulador do Android acelerado.

Acelerar com HAXM

Se o computador não oferecer suporte ao Hyper-V, você poderá usar o HAXM para acelerar o emulador android. Você deve desabilitar o Device Guard se quiser usar o HAXM.

Verificar o suporte para HAXM

Para determinar se o hardware dá suporte ao HAXM, siga as etapas em Meu processador dá suporte à Tecnologia de Virtualização da Intel?. Se o hardware der suporte ao HAXM, você poderá verificar se o HAXM já está instalado usando as seguintes etapas:

  1. Abra uma janela de prompt de comando e digite o seguinte comando:

    sc query intelhaxm
    
  2. Examine a saída para ver se o processo HAXM está em execução. Se ele estiver, você deverá ver lista de saída do estado intelhaxm como RUNNING. Por exemplo:

    Output from sc query command when HAXM is available

    Se STATE não estiver definido como RUNNING, o HAXM não está instalado.

Se o computador tiver suporte para HAXM, mas o HAXM não estiver instalado, siga as etapas na próxima seção para instalá-lo.

Instalando o HAXM

Os pacotes de instalação do HAXM para Windows estão disponíveis na página de versões do Intel Hardware Accelerated Execution Manager GitHub. Use as etapas a seguir para baixar e instalar o HAXM:

  1. No site da Intel, baixe a versão mais recente do mecanismo de virtualização do HAXM para o Windows. A vantagem de baixar o instalador do HAXM diretamente do site da Intel é que você pode ter certeza de usar a versão mais recente.

  2. Execute haxm-N.N.N-setup.exe (em que N.N.N é o número de versão) para iniciar o instalador HAXM. Aceite os valores padrão nas caixas de diálogo do instalador:

    Intel Hardware Accelerated Execution Manager Setup window

Ao criar um dispositivo virtual (consulte Gerenciar dispositivos virtuais com o Android Gerenciador de Dispositivos), selecione uma imagem do sistema baseada em x86. Se você usar uma imagem de sistema baseada em ARM, o dispositivo virtual não será acelerado e será executado lentamente.

Solução de problemas

Para obter ajuda para solucionar problemas de aceleração de hardware, confira o guia de solução de problemas do Android Emulator.

Acelerar emuladores de Android no macOS

As tecnologias de virtualização a seguir estão disponíveis para acelerar o Android Emulator:

  1. Framework de Hipervisor da Apple. O Hipervisor é um recurso do macOS 10.10 e de versões posteriores que possibilita executar máquinas virtuais em um Mac.

  2. HAXM (Hardware Accelerated Execution Manager) da Intel. O HAXM é um mecanismo de virtualização para computadores que executam CPUs Intel.

Recomendamos usar o Framework de Hipervisor para acelerar o Android Emulator. Se o Framework de Hipervisor não estiver disponível em seu Mac, o HAXM poderá ser usado. A aceleração de hardware será usada automaticamente pelo Android Emulator se os seguintes critérios forem atendidos:

  • A aceleração de hardware está disponível e habilitada no computador de desenvolvimento.

  • O emulador está executando uma imagem do sistema criada para um dispositivo virtual com base em x86.

Importante

Você não pode executar um emulador acelerado por VM dentro de outra VM, como uma VM hospedada por VirtualBox, VMware ou Docker. Execute o Android Emulator diretamente no hardware do sistema.

Para obter informações sobre como iniciar e depurar com o emulador do Android, consulte Depuração no Emulator do Android.

Acelerar o com o Framework de Hipervisor

Para usar o Android Emulator com o Framework de Hipervisor, seu Mac precisa atender aos seguintes critérios:

  • O Mac precisa estar executando o macOS 10.10 ou posterior.

  • A CPU do Mac precisa ser capaz de dar suporte ao Framework de Hipervisor.

Caso o Mac atenda a esses critérios, o Android Emulator usará automaticamente o Framework de Hipervisor para aceleração. Se não tiver certeza de que o Framework do Hipervisor tenha suporte em seu Mac, confira o guia de Solução de problemas para ver maneiras de verificar se seu Mac tem suporte para o Hipervisor.

Se o Framework de Hipervisor não tiver suporte em seu Mac, você poderá usar o HAXM para acelerar o Android Emulator (descrito a seguir).

Acelerar com HAXM

Se o Mac não tiver suporte para o Framework de Hipervisor (ou se você estiver usando uma versão do macOS anterior à 10.10), você poderá usar o Hardware Accelerated Execution Manager da Intel (HAXM) para acelerar o Android Emulator.

Para usar o Android Emulator com o HAXM pela primeira vez, verifique se o HAXM está instalado e disponível para uso do Android Emulator.

Verificar o suporte para HAXM

Você pode verificar se o HAXM já está instalado usando as seguintes etapas:

  1. Abra um Terminal e insira o seguinte comando:

    ~/Library/Developer/Xamarin/android-sdk-macosx/tools/emulator -accel-check
    

    Esse comando presume que o SDK do Android está instalado na localização padrão do ~/Library/Developer/Xamarin/android-sdk-macosx. Se não estiver, modifique o caminho acima para a localização do SDK do Android no Mac.

  2. Se o HAXM estiver instalado, o comando acima retornará uma mensagem com um resultado semelhante ao seguinte:

    HAXM version 7.2.0 (3) is installed and usable.
    

    Se o HAXM não estiver instalado, será retornada uma mensagem semelhante à saída a seguir:

    HAXM is not installed on this machine (/dev/HAX is missing).
    

Se HAXM não estiver instalado, siga as etapas na próxima seção para instalá-lo.

Instalando o HAXM

Pacotes de instalação do HAXM para macOS estão disponíveis na página Hardware Accelerated Execution Manager da Intel. Use as etapas a seguir para baixar e instalar o HAXM:

  1. No site da Intel, baixe a versão mais recente do mecanismo de virtualização do HAXM para o macOS.

  2. Execute o instalador do HAXM. Aceite os valores padrão nas caixas de diálogo do instalador:

    Intel Hardware Accelerated Execution Manager Setup window

Solução de problemas

Para obter ajuda para solucionar problemas de aceleração de hardware, confira o guia de solução de problemas do Android Emulator.