segunda-feira, 25 de março de 2013

Como acelerar um emulador Android



Muitos desenvolvedores tem o problema com os emuladores que ficam muito lentos para iniciar e executar algumas tarefas com gráficos em seus computadores, essa lentidão causa um mal estar muito grande, pois temos que esperar um bom tempo para poder rodar uma simples aplicação. Pensando nisso o Google programou formas para se acelerar o emulador.

Existem três formas para se acelerar o emulador:

  • Usando snapshot
  • Usando aceleração de  hardware x86 na imagem do Android
  • Usando aceleração GPU

Usando snapshot

Sendo a inicialização do emulador do Android muito lenda, foi criado um meio de se trabalhar com snapshot das imagens do emulador que funciona da seguinte maneira após o primeiro boot o estado do emulador é gravado no disco rígido e na próxima inicialização o estado é lido para a memória sem passar pelos demorados procedimentos de inicialização do Android reduzindo o tempo de inicialização.

Utilizando o snapshot do Android

Primeiro você tem que habilitar o Snapshot na criação do AVD conforme se ver na imagem abaixo:

Criação de AVD com Snapshot
Criação de AVD com Snapshot

Após a criação do AVD inicialize-o e verifique se está ativada a opção de Salvar para snapshot conforme a imagem abaixo:

Habilitar Salvamento para Snapshot
Habilitar Salvamento para Snapshot

Depois da primeira inicializada do AVD as próximas serão significantemente mais rápidas.


Aceleração de Hardware x86

Para a aceleração de hardware x86 é necessário ser usada uma imagem x86 do Android pois o Emulador Android usa por padrão uma imagem ARM. E como essa arquitetura é muito diferente da x86 o emulador precisa fazer uma conversão de todas as instruções de ARM para o x86 e isso causa uma perca de performance.

Primeiro passo para se ter a aceleração de hardware x86 é baixar no Android SDK Manager os seguintes itens:

  • Intel x86 Emulador Accelerator (HAXM) e
  • Intel x86 Atom System Image (Para cada versão de API do Android que se usar para o desenvolvimento)


Conforme imagem abaixo:


Download dos componentes de Intel x86
Download de Intel x86

Para instalação do HAXM é necessário ir ao diretório extra  do SDK do Android e executar o seguinte arquivo: haxm-windows_r02.exe.

Agora é só criar um AVD usando uma imagem Intel Atom (x86) conforme imagem abaixo:



O desempenho da imagem do emulador  fica sensivelmente visível, mas esse recurso só funciona se seu computador possui  um processador Intel com suporte a VT-x.  Para mais informações sobre HAXM, acesse http://www.intel.com/software/android.


 Usando aceleração GPU OpenGL

O Emulador Android por padrão vem com a aceleração de GPU desabilitada e pode ser habilitada na criação do AVD, clicando na opção Use Host GPU, conforme imagem abaixo:

Aceleração por GPU
Aceleração por GPU


A aceleração GPU não é compatível com snapshot.

A aceleração GPU torna seu AVD bastante rápido para os testes de seus aplicativos, mais não tendo o snapshot o torna lento na inicialização.

Nos meus testes foi a melhor opção, pois a execução dos aplicativos ficou mais rápido mesmo tendo a inicialização se tornado mais lenta, é só inicializar a AVD antes dos testes e só desligar depois que terminar os trabalhos, assim se economizar um bom tempo durante os vários testes após cada mudança de código e compilação.

Espero ter ajudado com mais esse post.




















Nenhum comentário: