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 pela 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:
- Abra o AVD Manager.
- Crie um novo AVD ou edite um AVD existente.
- Na página Verify Configuration, encontre a seção Emulated Performance.
- Selecione um valor para a opção Graphics:.
- 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çõesswiftshader_indirect
ouangle_indirect
.swiftshader_indirect
: usa uma variante compatível com Quick Boot do SwiftShader para renderizar gráficos usando a aceleração de software. Essa opção é uma boa alternativa para o modohost
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 modohost
quando o computador não pode usar a aceleração de hardware. Na maioria dos casos, o desempenho ANGLE será semelhante ao modohost
, 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. Useswiftshader_indirect
.angle
: uso suspenso na versão 27.0.2. Em vez disso, useangle_indirect
(somente para Windows).mesa
: uso suspenso na versão 25.3. Useswiftshader_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:
- Configurar a aceleração de VM no Windows
- Configurar a aceleração de VM no macOS
- Configurar a aceleração de VM no Linux
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-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 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 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. |
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:
- Abra o SDK Manager.
- Clique na guia SDK Update Sites e selecione Intel HAXM.
- Clique em OK.
- 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
- Use o assistente para concluir a instalação.
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:
- Abra Tools->SDK Manager.
- Clique na guia SDK Tools e selecione Android Emulator Hypervisor Driver for AMD Processors.
- Clique em OK para fazer o download e instalar o driver do hipervisor do Android Emulator para processadores AMD.
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 versão 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:
- Na área de trabalho do Windows, clique com o botão direito no ícone do Windows e selecione Apps and features.
- Em Related settings, clique em Programs and Features.
- Clique em Turns Windows Features on or off.
Selecione Windows Hypervisor Platform.
Clique em OK.
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:
- Abra o SDK Manager.
- Clique na guia SDK Update Sites e selecione Intel HAXM.
- Clique em OK.
- Quando o download terminar, execute o instalador.
Normalmente, você encontra o instalador no seguinte local:
sdk/extras/intel/Hardware_Accelerated_ExecutionManager/IntelHAXMversion.dmg
- Siga as instruções na tela para concluir a instalação.
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