slow Por que o emulador do Android é tão lento? Como podemos acelerar o emulador do Android?




momo emulator lagging (24)

Eu tenho um processador Celeron de 2,67 GHz e 1,21 GB de RAM em uma máquina x86 Windows XP Professional.

Meu entendimento é que o Android Emulator deve começar rapidamente em uma máquina desse tipo, mas, para mim, isso não acontece. Eu segui todas as instruções para configurar o IDE, SDKs, JDKs e outros e tive algum sucesso em iniciar o emulador rapidamente, mas isso é muito raro. Como posso, se possível, corrigir esse problema?

Mesmo que comece e carregue a tela inicial, é muito lento. Eu tentei o Eclipse IDE na versão 3.5 (Galileo) e 3.4 (Ganymede).


Para reduzir o tempo de inicialização do emulador, é necessário marcar a opção "Desativar animação de inicialização" antes de iniciar o emulador. Consulte a documentação do Android .

Se você não souber, não precisará fechar o emulador toda vez que executar / depurar seu aplicativo. Se você clicar em executar / depurar quando já estiver aberto, o arquivo do APK será carregado no emulador e iniciado praticamente imediatamente. Emulador demora muito tempo apenas quando começou a primeira vez.

Aqui estão algumas dicas para acelerar o emulador do Android: Como acelerar o emulador do Android em até 400% .


Após o desenvolvimento por um tempo, meu emulador tornou-se brutalmente lento. Eu escolhi limpar os dados do usuário e ficou muito melhor. Acredito que leva tempo para carregar cada arquivo APK que você implantou.



As versões mais antigas do Android são muito mais rápidas. Quando estou no meu netbook, eu uso o Android 1.5 (nível de API 3). Há algumas desvantagens, no entanto - seus aplicativos precisam suportar as plataformas mais antigas (obviamente), e o ndk-gdb requer a execução do Android 2.2 (API nível 8) ou superior. No entanto, testar aplicativos regularmente em plataformas mais antigas é uma boa ideia.


Você pode criar emulator.bat com o seguinte comando para iniciar o emulador. Vai começar mais rápido.

emulator.exe -cpu-delay 0 -no-boot-anim @<avd name>

Ou no Unix (sabores do Mac ou Linux):

emulator -cpu-delay 0 -no-boot-anim @<avd name>

Eu notei que o meu emulador ( plugin Eclipse ) foi significativamente retardado por minhas configurações de anti-aliasing da placa gráfica Nvidia . Remover 2x anti-aliasing do menu gráfico e alterá-lo para o aplicativo controlado tornou-o mais responsivo. Ainda é lento, mas melhor do que costumava ser.


Você pode analisar os problemas do emulador na conversa sobre o Google I / O 2011: Ferramentas de desenvolvimento para Android , iniciando uma 0:40:20.

O emulador é executado lentamente porque o ambiente Android completo está sendo executado em hardware emulado e as instruções também são executadas em um processador ARM emulado.

O principal ponto de asfixia é renderização, já que ele não está sendo executado em nenhum hardware dedicado, mas na verdade está sendo executado através da renderização de software. Diminuir o tamanho da tela melhorará drasticamente o desempenho do emulador. Obter mais memória / mais rápida não vai ajudar.

Eles mencionaram, na época, que estão desenvolvendo uma interface que permitiria ao emulador canalizar certas instruções através do hardware do host, assim, eventualmente, você poderá aproveitar o desempenho dos emuladores com a força bruta do hardware de desktop.


Eu tinha tempos de carregamento do emulador lento intermitente (SDK v8.0), até três minutos na CPU Intel Core i7 920 de 2,67 GHz rodando no Xubuntu 10.04 VirtualBox 3.2.12 guest com o Eclipse (3.6.1) carregado. Mudei a memória do convidado do VirtualBox de 1024 MB para 2048 MB e, a partir daí, nunca mais experimentei a lentidão (tempos de carregamento consistentes em 33 segundos, carga da CPU consistente em 20%). Tanto o Eclipse quanto o emulador são porcos de memória.



ATUALIZAÇÃO: A versão mais recente do Android Studio (2.x) fez grandes melhorias no emulador empacotado. É responsivo e tem um monte de recursos.

Para aqueles ainda interessados: tente usar o Genymotion . Você pode baixar uma versão para Windows / Mac OS X / Linux após o registro. Um plugin para o Eclipse também está disponível:

A instalação do plug-in pode ser feita iniciando o Eclipse e indo para o menu "Ajuda / Instalar Novo Software" e, em seguida, basta incluir um novo Site de Atualização com o seguinte URL: http://plugins.genymotion.com/eclipse . Siga os passos indicados pelo Eclipse.

Este emulador é rápido e responsivo.

GenyMotion permite controlar vários sensores do seu dispositivo, incluindo o nível da bateria, força do sinal e GPS. A versão mais recente agora também contém ferramentas de câmera.


Para adicionar mais informações para isso.

Eu recentemente atualizei minha instalação do Ubuntu 10.04 para o Ubuntu 10.04 LTS (Lucid Lynx) que, por sua vez, atualizou minha versão de Java para:

Java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)

E agora o emulador (embora demore um pouco para começar) parece estar rodando mais rápido do que anteriormente.

Pode valer a pena que as pessoas atualizem sua JVM.


Bem, desde que alguém sugeriu o Android x86 como um emulador de testes alternativos, eu também vou apresentar o meu favorito. Isso pode não ser uma alternativa para todos, mas para mim é perfeito!

Use o Bluestacks Player . Ele roda o Android 2.3.4 e é muito fluido e rápido. Às vezes, é ainda mais rápido que um dispositivo normal. A única desvantagem é que você pode testar aplicativos apenas no nível 10 da API e em apenas um tamanho de tela, mas é perfeito apenas para testar se está funcionando ou não. Basta conectar o Player com o adbexecutando

adb connect 127.0.0.1 

Depois de compilar, ele é instalado instantaneamente. É muito impressionante, considerando que eu tenho hardware de computador bastante médio (dual core com 4 GB de RAM).


O emulador parece se desacelerar quando ocioso. Isso fica evidente ao passar rapidamente as teclas ao lado e observando as respostas de iluminação. Como solução alternativa, passo- -icount auto para o QEMU ao iniciar o emulador. Você pode criar um arquivo em lote chamado my_avd.bat para fazer isso por você:

emulator @my_avd -no-boot-anim -qemu -icount auto
  • @my_avd - inicie um dispositivo virtual chamado 'my_avd'
  • -no-boot-anim - desativa a animação para inicialização mais rápida
  • -qemu args... - passar argumentos para o qemu
  • -icount [N|auto] - ativa o contador de instruções virtuais com 2 ^ N pulsos de clock por instrução

Isso fez animações amanteigadas suavizar e acelerar adb install dez vezes.


Experimente o Android x86 . É muito mais rápido que o emulador do Google Android. Siga esses passos:

  1. Instale o VirtualBox .
  2. Baixe o arquivo ISO que você precisa.
  3. Crie uma máquina virtual como Linux 2.6 / Other Linux, 512 MB de RAM, HD 2 GB. Rede: PCnet-Fast III, anexado ao NAT . Você também pode usar um adaptador em ponte, mas precisa de um servidor DHCP em seu ambiente.
  4. Instale o Android x86 no emulador, execute-o.
  5. Pressione Alt + F1 , digite netcfg , lembre-se do endereço IP, pressione Alt + F7 .
  6. Execute cmd no seu sistema Windows XP, altere o diretório para o diretório de ferramentas do Android, digite adb connect <virtual_machine_IP> .
  7. Inicie o Eclipse, abra o plug-in do ADT, encontre o dispositivo e divirta-se!

A partir da Revisão 17 do Android SDK Tools, o emulador pode usar aceleração gráfica e extensões fornecidas pela CPU para melhor eficiência. Os pré-requisitos e a configuração completa e as notas do usuário estão em:

http://developer.android.com/guide/developing/devices/emulator.html#acceleration

Para habilitar a aceleração da GPU , execute o emulador a partir da linha de comando ou adicione "-gpu on" às opções adicionais da linha de comando do emulador na configuração do AVD.

emulator -avd <avd_name> -gpu on

Para usar as extensões de máquina da CPU, é necessário instalar o driver (cuidado, pois pode entrar em conflito com os drivers existentes do VirtualBox ou do VMware ). Uma vez instalado, ele será usado automaticamente sempre que você usar um AVD baseado em x86.


Android SDK rev. O 17 suporta aceleração de máquina virtual usando tecnologias de virtualização AMD e Intel.

Esse recurso pode melhorar muito o desempenho do emulador!

Consulte a seção a seguir na documentação do emulador do Android para obter mais detalhes: Configurando a aceleração de máquina virtual

Não esqueça de instalar o driver apropriado para o seu sistema operacional:

Depois de instalar os drivers e baixar uma imagem do sistema Android X86 (como descrito na documentação), você poderá criar um novo AVD usando a imagem x86:

Por exemplo:

  • Destino: Imagem do Sistema Intel Atom x86 - Nível 10 da API
  • CPU / ABI: Intel Atom (x86)

Experimente o genymotion.com para Android Studio. Ardente rápido! Só precisa de uma instalação de tempo. Não há mais dor AVD.


A versão atual (maio de 2011) do emulador é lenta particularmente com o Android 3.0 (Honeycomb) principalmente porque o emulador não suporta hardware GL - isso significa que o código GL é traduzido em software (software ARM, na verdade) que então fica emulado em software no QEMU . Isso é loucamente lento. Eles estão trabalhando nesse problema e parcialmente solucionado, mas não com qualquer tipo de qualidade de lançamento.

Confira o vídeo Google I / O 2011: Ferramentas de desenvolvimento Android para ver em ação - pule para cerca de 44 minutos.


OBSERVAÇÃO IMPORTANTE : Consulte primeiro a lista da Intel sobre VT para certificar-se de que sua CPU suporta Intel VT.

HAXM acelera o lento emulador do Android

HAXM significa - "Intel Hardware Accelerated Execution Manager"

Atualmente suporta apenas Intel® VT (Intel Virtualization Technology).

O emulador do Android é baseado no QEMU . A interface entre o QEMU e o driver HAXM no sistema host é projetada para ser independente de fornecedor.

Etapas para configurar seu ambiente de desenvolvimento Android para o HAXM

  1. Atualizar o Eclipse: Certifique-se de que a instalação do Eclipse e o plug-in do ADT estejam totalmente atualizados.

  2. Atualize suas ferramentas do Android: após cada atualização do plug-in do Eclipse, é importante atualizar suas ferramentas do Android SDK. Para isso, inicie o Gerenciador do Android SDK e atualize todos os componentes do Android SDK. Para aproveitar o HAXM, você deve estar pelo menos na versão 17.

  • Faça download das imagens do sistema Atom x86 e do driver do Intel Hardware Accelerated Execution Manager . Siga a imagem abaixo:

  • Instale o driver HAXM executando "IntelHaxm.exe". Ele estará localizado em um dos seguintes locais:

    • C:\Program Files\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

    • C:\Users\<user>\adt-bundle-windows-x86_64\sdk\extras\intel\Hardware_Accelerated_Execution_Manager

    Se o instalador falhar com a mensagem de que o Intel VT deve estar ligado, é necessário ativar isso no BIOS . Veja a descrição de como fazer isso em Ativando o Intel VT (Virtualization Technology) .

  • Crie um novo x86 AVD: Siga a imagem abaixo:

  • Ou como para o novo SDK,

O emulador do Android é muito lento. Demora 800MB de memória durante a execução. Se você estiver no Windows, você pode usar o Microsoft Android Emulator. É excelente, oferece funcionalidades mais do que o Android Studio Emulator. E o mais importante é rápido (consome apenas 13MB). Ele vem com o Visual Studio 2015 Technical Preview. Eu estou usando e feliz com isso. Eu baixei e instalei o pacote VS inteiro, eu preciso olhar como podemos instalar o VS Emulator apenas.

Emulador de Visual Studio para Android

EDIT: tente https://www.visualstudio.com/vs/msft-android-emulator/


Tente desativar seu antivírus. Talvez isso torne o emulador um pouco mais rápido.


Use o acelerador de emulador Intel x86

Primeiro, instale o Intel x86 Emulator Accelerator (HAXM). Isso pode ser baixado diretamente da Intel ou usando o Android SDK Manager. No Gerenciador do SDK, ele está localizado em Extras.

Na versão do Android Studio que usei (0.8.9), o Android SDK Manager baixa o HAXM, mas na verdade não executa o instalador (suponho que isso será corrigido em versões posteriores). Para executar o instalado eu tive que ir para C: \ Arquivos de Programas (x86) \ Android \ android-estúdio \ sdk \ extras \ intel \ Hardware_Accelerated_Execution_Manager e manualmente iniciar intelhaxm.exe.

O HAXM trabalha com dispositivos Intel, então criou um novo Emulador com CPU Intel.

Crie um novo AVD usando o Intel Atom x86

Isso melhorou consideravelmente as coisas, mas o emulador ainda estava um pouco lento. A etapa final foi selecionar Use Host GPU no Android Virtual Device Manager (AVD).

Após essas alterações, o Android Emulator foi lançado em 5 a 10 segundos e executado sem nenhum atraso perceptível. Esteja ciente de que esses recursos dependem do hardware (CPU / GPU) e podem não funcionar em alguns sistemas.


A Intel lançou as instruções de instalação recomendadas para o emulador ICS em 15 de maio de 2012. Isso funcionou para mim. O emulador agora é rápido e a interface do usuário é suave.

A primeira metade das instruções é detalhada o suficiente, então eu suponho que você foi capaz de instalar a Imagem do Sistema Intel x86 Atom usando o gerenciador do Android SDK, assim como o Intel HAXM.

Agora, para garantir que tudo esteja configurado para que você possa desfrutar de um emulador de alta performance:

E comece:

sudo kextload -b com.intel.kext.intelhaxm (mac)

Se o HAXM estiver funcionando corretamente, você poderá ver esta mensagem ao iniciar o emulador:

O HAX está funcionando e o emulador é executado no modo virt virt

Caso contrário, você poderá ver este erro:

O HAX não está funcionando e o emulador é executado no emulador do modo de emulação:
Falha ao abrir o módulo hax

  • Use emulação de GPU. Você não pode usar a opção Instantâneo ao usar a emulação de GPU até o momento desta publicação. Certifique-se de que a emulação da GPU esteja definida como "yes".

  • Configure a memória do dispositivo para 1024 MB ou mais , mas não mais que a configuração do Intel HAXM. Eu uso 1024 MB por dispositivo e 2048 para o HAXM.

Sempre verifique as configurações depois de salvar! O emulador é muito exigente sobre o que ele permite que você defina e ele irá reverter as configurações sem avisar você.

Com essas configurações, o teclado do software não aparece mais, nem as teclas voltar, menu e recentes na tela. Esta parece ser uma limitação da atual imagem do sistema ICS Intel x86. Você precisará usar os atalhos de teclado .

No Mac OS, você precisará manter o controle fn + para as teclas F1 - F12 funcionarem. Page up / down / left / right pode ser executado usando as teclas control + seta.


Atualizar

Agora você pode ativar a opção de inicialização rápida para o emulador do Android. Isso salvará o estado do emulador e iniciará o emulador rapidamente na próxima inicialização.

Clique no botão de edição do Emulador e, em seguida, clique em Mostrar Configuração Avançada . Em seguida, ative o Quick Boot como abaixo da captura de tela.

O Android Development Tools (ADT) 9.0.0 (ou posterior) tem um recurso que permite salvar o estado do AVD (emulador) e você pode iniciar seu emulador instantaneamente. Você tem que habilitar esse recurso enquanto cria um novo AVD ou pode apenas criá-lo mais tarde editando o AVD.

Também eu tenho aumentado o Device RAM Size do Device RAM Size para 1024 que resulta em um emulador muito rápido.

Consulte as capturas de tela abaixo para mais informações.

Criando um novo AVD com o recurso de salvar instantâneo.

Lançando o emulador a partir do instantâneo.

E para acelerar seu emulador, você pode consultar o Speed ​​up your Android Emulator! :





qemu