Aceleração de hardware para o desempenho do emuladorHardware Acceleration for Emulator Performance

Este artigo explica como usar os recursos de aceleração de hardware do computador para maximizar o desempenho do Android Emulator.This article explains how to use your computer's hardware acceleration features to maximize Android Emulator performance.

Visão geralOverview

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.Visual Studio makes it easier for developers to test and debug their Xamarin.Android applications by using the Android Emulator in situations where an Android device is unavailable or impractical. 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.However, the Android emulator runs too slowly if hardware acceleration is not available on the computer that runs it. Você pode melhorar significativamente o desempenho do Android Emulator usando imagens de dispositivo virtual especiais destinadas a hardware x86, juntamente com uma dessas duas tecnologias de virtualização:You can drastically improve the performance of the Android emulator by using special virtual device images that target x86 hardware in conjunction with one of two virtualization technologies:

  1. O Hyper-V e a Plataforma de Hipervisor da Microsoft.Microsoft's Hyper-V and the Hypervisor Platform. O Hyper-V é um recurso de virtualização do Windows que possibilita a execução de sistemas de computador virtualizados em um computador host físico.Hyper-V is a virtualization feature of Windows that makes it possible to run virtualized computer systems on a physical host computer. Essa é a tecnologia de virtualização recomendada para acelerar o Android Emulator.This is the recommended virtualization technology to use for accelerating the Android Emulator. Para saber mais sobre o Hyper-V, consulte Hyper-V no Windows 10.To learn more about Hyper-V, see Hyper-V on Windows 10.

  2. HAXM (Hardware Accelerated Execution Manager) da Intel.Intel's Hardware Accelerated Execution Manager (HAXM). O HAXM é um mecanismo de virtualização para computadores que executam CPUs Intel.HAXM is a virtualization engine for computers running Intel CPUs. Ele é o mecanismo de virtualização recomendado para computadores que não podem executar o Hyper-V.This is the recommended virtualization engine for computers that are unable to run Hyper-V.

A aceleração de hardware será usada automaticamente pelo Android Emulator se os seguintes critérios forem atendidos:The Android Emulator will automatically make use of hardware acceleration if the following criteria are met:

  • A aceleração de hardware está disponível e habilitada no computador de desenvolvimento.Hardware acceleration is available and enabled on the development computer.

  • O emulador está executando uma imagem do emulador especificamente criada para um dispositivo virtual com base em x86.The emulator is running an emulator image specifically created for an x86-based virtual device.

Para obter informações sobre lançamento e depuração com o Android Emulator, consulte Depurando no Android Emulator.For information about launching and debugging with the Android Emulator, see Debugging on the Android Emulator.

Hyper-VHyper-V

Observação

No momento, o suporte do Hyper-V está em versão prévia.Hyper-V support is currently in Preview.

Desenvolvedores que estão usando o Windows 10 (Atualização de abril de 2018 ou posterior) são incentivados a usar o Microsoft Hyper-V para acelerar o Android Emulator.Developers who are using Windows 10 (April 2018 Update or later) are strongly encouraged to use Microsoft's Hyper-V to accelerate the Android Emulator. Para usar o Android Emulator com Hyper-V:To use the Android Emulator with Hyper-V:

  1. Atualize para a Atualização de abril de 2018 para o Windows 10 (build 1803) ou posterior.Update to Windows 10 April 2018 Update (build 1803) or later. Para verificar qual versão do Windows está em execução, clique na barra de pesquisa da Cortana e digite Sobre.To verify which version of Windows is running, click in the Cortana search bar and type About. Selecione Sobre seu PC nos resultados da pesquisa.Select About your PC in the search results. Role a caixa de diálogo Sobre para baixo até a seção Especificações do Windows.Scroll down in the About dialog to the Windows specifications section. O Versão deve ser pelo menos 1803:The Version should be at least 1803:

    Especificações do WindowsWindows specifications

  2. Habilite a Plataforma Hipervisor do Windows.Enable the Windows Hypervisor Platform. Na barra de pesquisa da Cortana, digite Ativar ou desativar recursos do Windows.In the Cortana Search bar, type Turn Windows features on or off. Role a caixa de diálogo Recursos do Windows para baixo e verifique se a opção Plataforma Hipervisor do Windows está habilitada:Scroll down in the Windows Features dialog and ensure that Windows Hypervisor Platform is enabled:

    Plataforma Hipervisor do Windows habilitadaWindows Hypervisor Platform enabled

    Habilitar a Plataforma Hipervisor do Windows habilita o Hyper-V automaticamente.Enabling Windows Hypervisor Platform automatically enables Hyper-V. É recomendável reiniciar o Windows após essa alteração.It is a good idea to restart Windows after making this change.

  3. Instale o Visual Studio 15.8 Preview 1 ou posterior.Install Visual Studio 15.8 Preview 1 or later. Esta versão do Visual Studio fornece suporte a IDE para execução do Android Emulator com Hyper-V.This version of Visual Studio provides IDE support for running the Android Emulator with Hyper-V.

  4. Instale o pacote 27.2.7 ou posterior do Android Emulator.Install the Android Emulator package 27.2.7 or later. Para instalar este pacote, navegue até Ferramentas > Android > Gerenciador de SDK do Android no Visual Studio.To install this package, navigate to Tools > Android > Android SDK Manager in Visual Studio. Selecione a guia Ferramentas e verifique se a versão do Android Emulator é, pelo menos, a 27.2.7.Select the Tools tab and ensure that the Android Emulator version is at least 27.2.7. Também verifique se a versão do Android SDK Tools é a 26.1.1 ou posterior:Also ensure that the Android SDK Tools version is 26.1.1 or later:

    Caixa de diálogo SDKs e Ferramentas do AndroidAndroid SDKs and Tools dialog

  5. Se a versão do emulador for pelo menos 27.2.7, mas inferior a 27.3.1, a seguinte solução alternativa será necessária para usar o Hyper-V:If the emulator version is at least 27.2.7 but less than 27.3.1, the following workaround is required to use Hyper-V:

    1. Na pasta C:\Usuários\nome de usuário\.android, crie um arquivo chamado advancedFeatures.ini (caso ele ainda não exista).In the C:\Users\username\.android folder, create a file called advancedFeatures.ini (if it doesn't already exist).

    2. Adicione a seguinte linha a advancedFeatures.ini:Add the following line to advancedFeatures.ini:

      WindowsHypervisorPlatform = on
      

Problemas ConhecidosKnown Issues

  • Se não for possível atualizar a versão do emulador para a 27.2.7 ou posterior depois de atualizar para uma versão prévia do Visual Studio, talvez seja necessário instalar diretamente o instalador da versão prévia para habilitar versões mais recentes do emulador.If you are unable to update to emulator version 27.2.7 or later after updating to a Visual Studio preview, you may have to directly install the preview installer to enable newer emulator versions.

  • O desempenho pode ser reduzido ao usar determinados processadores baseados na AMD e na Intel.Performance may be reduced when using certain Intel and AMD-based processors.

  • O aplicativo Android pode levar uma quantidade anormal de tempo para carregar na implantação.Android application may take an abnormal amount of time to load on deployment.

  • O erro de acesso à MMIO pode impedir de maneira intermitente a inicialização do Android Emulator.MMIO access error may intermittently prevent a boot of the Android emulator. A reinicialização do emulador deve resolver o problema.Restarting the emulator should resolve this.

HAXMHAXM

O HAXM é um mecanismo de virtualização assistido por hardware (hipervisor) que usa a VT (tecnologia de virtualização) da Intel para acelerar a emulação de aplicativos Android em um computador host.HAXM is a hardware-assisted virtualization engine (hypervisor) that uses Intel Virtualization Technology (VT) to speed up Android app emulation on a host machine. O uso do HAXM em conjunto com as imagens de emulador x86 do Android fornecidas pela Intel permite uma emulação mais rápida do Android em sistemas habilitados para VT.Using HAXM in conjunction with Android x86 emulator images provided by Intel allows for faster Android emulation on VT-enabled systems.

Se você estiver desenvolvendo em um computador com uma CPU Intel com recursos de VT, poderá aproveitar o HAXM para acelerar bastante o Android Emulator (se não tiver certeza de que sua CPU oferece suporte a VT, consulte O meu processador suporta a Tecnologia de virtualização Intel?).If you are developing on a machine with an Intel CPU that has VT capabilities, you can take advantage of HAXM to greatly speed up the Android Emulator (if you're not sure whether your CPU supports VT, see Does My Processor Supports Intel Virtualization Technology?).

Observação

Não é possível executar um emulador acelerado por VM dentro de outra VM, como uma VM hospedada por VirtualBox, VMWare ou Docker.You can't run a VM-accelerated emulator inside another VM, such as a VM hosted by VirtualBox, VMWare, or Docker. Execute o Android Emulator diretamente no hardware do sistema.You must run the Android emulator directly on your system hardware.

Para usar o Android Emulator pela primeira vez, verifique se o HAXM está instalado e disponível para uso do Android Emulator.Before using the Android Emulator for the first time, it's a good idea to verify that HAXM is installed and available for the Android Emulator to use.

Verificando a instalação do HAXMVerifying HAXM Installation

Você pode verificar se o HAXM está disponível olhando a janela Iniciando o Emulador do Android quando o emulador é iniciado.You can check to see if HAXM is available by viewing the Starting Android Emulator window while the emulator starts. Para iniciar o Android Emulator, faça o seguinte:To start the Android Emulator, do the following:

  1. Inicie o Android Device Manager, clicando em Ferramentas > Android > Android Device Manager:Launch the Android Device Manager by clicking Tools > Android > Android Device Manager:

    Local do item de menu Android Device ManagerAndroid Device Manager menu item location

  2. Se uma caixa de diálogo de Aviso de Desempenho semelhante à seguinte for exibida, significa que o HAXM ainda não foi instalado ou configurado corretamente em seu computador: If you see a Performance Warning dialog similar to the following, then HAXM is not yet installed or configured properly on your computer:

    Caixa de diálogo de Aviso de Desempenho dizendo que o HAXM não está pronto

    Se uma caixa de diálogo de Aviso de Desempenho como essa for mostrada, consulte os Avisos de Desempenho para identificar a causa e resolva o problema subjacente.If a Performance Warning dialog like this is shown, see Performance Warnings to identify the cause and resolve the underlying problem.

  3. Selecione uma imagem x86 (por exemplo, VisualStudio_android-23_x86_phone) e clique em Iniciar:Select an x86 image (for example, VisualStudio_android-23_x86_phone) and click Start:

    Iniciando o Android Emulator com uma imagem de dispositivo virtual padrão

  4. Observe a janela de diálogo Iniciando o Emulador do Android enquanto o emulador é iniciado.Watch for the Starting Android Emulator dialog window while the emulator starts up. Se o HAXM estiver instalado, você verá a mensagem O HAX está funcionando e o emulador é executado no modo virtual rápido, conforme mostrada nesta captura de tela:If HAXM is installed, you will see the message, HAX is working and emulator runs in fast virt mode as shown in this screenshot:

    O HAXM é exibido como disponível na caixa de diálogo Iniciando o Emulador do Android

    Se você não vir essa mensagem, provavelmente o HAXM não está instalado.If you do not see this message, then HAXM is probably not installed. Por exemplo, esta é uma captura de tela de uma mensagem que poderá ser exibida se o HAXM não estiver disponível:For example, here is a screenshot of a message you may see if HAXM is not available:

    O HAXM não está disponível neste computador

    Se HAXM não estiver disponível em seu computador, siga as etapas na próxima seção para instalá-lo.If HAXM is not available on your computer, use the steps in the next section to install HAXM.

Instalando o HAXMInstalling HAXM

Se o emulador não iniciar, talvez seja necessário instalar o HAXM manualmente.If the emulator does not start, HAXM may have to be installed manually. Pacotes de instalação do HAXM para Windows e macOS estão disponíveis na página Intel Hardware Accelerated Execution Manager.HAXM install packages for both Windows and macOS are available from the Intel Hardware Accelerated Execution Manager page. Use as etapas a seguir para baixar e instalar o HAXM manualmente:Use the following steps to download and install HAXM manually:

  1. No site da Intel, baixe a versão mais recente do mecanismo de virtualização do HAXM para Windows.From the Intel website, download the latest HAXM virtualization engine installer for Windows. A vantagem de baixar o instalador do HAXM diretamente do site da Intel é a segurança de que você está usando a versão mais recente. The advantage of downloading the HAXM installer directly from the Intel website is that you can be assured of using the latest version.

    Como alternativa, você pode usar o Gerenciador de SDK para baixar o instalador do HAXM (no Gerenciador do SDK, clique em Ferramentas > Extras > Acelerador do Emulador Intel x86 (Instalador do HAXM)).Alternately, you can use the SDK Manager to download the HAXM installer (In the SDK Manager, click Tools > Extras > Intel x86 Emulator Accelerator (HAXM installer)). O SDK do Android normalmente baixa o instalador do HAXM no seguinte local:The Android SDK normally downloads the HAXM installer to the following location:

    C:\Arquivos de Programas (x86)\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_ManagerC:\Program Files (x86)\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

    Observe que o Gerenciador de SDK não instala o HAXM, ele simplesmente baixa o instalador do HAXM no local acima; você ainda precisará iniciá-lo manualmente.Note that the SDK Manager does not install HAXM, it merely downloads the HAXM installer to the above location; you still have to launch it manually.

  2. Execute o arquivo intelhaxm-android.exe para iniciar o instalador do HAXM.Run intelhaxm-android.exe to start the HAXM installer. Aceite os valores padrão nas caixas de diálogo do instalador:Accept the default values in the installer dialogs:

    Janela de instalação do Intel Hardware Accelerated Execution Manager

Aceleração de hardware e CPUs AMDHardware Acceleration and AMD CPUs

Como o Android Emulator atualmente oferece suporte à aceleração de hardware AMD somente no Linux, a aceleração de hardware não está disponível para computadores baseados em AMD que executam o Windows.Because the Android emulator currently supports AMD hardware acceleration only on Linux, hardware acceleration is not available for AMD-based computers running Windows.