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:
- Abra o AVD Manager.
- Crie um novo AVD ou edite um AVD existente.
- Na janela 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 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çõesswiftshader_indirect
ouangle_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 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 do ANGLE é semelhante ao uso do modohost
, 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. Useswiftshader_indirect
.angle
: uso descontinuado na versão 27.0.2. Em vez disso, useangle_indirect
(somente para Windows).mesa
: uso descontinuado 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 (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:
- Configurar a aceleração de VM no Windows
- Configurar a aceleração de VM no macOS
- Configurar a aceleração de VM no Linux
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:
- 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 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:
- Selecione 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 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:
- 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.
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
:
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.
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