Press enter to see results or esc to cancel.

Android Emulator Quick Boot: inicialização mais rápida do emulador

Quem me conhece já deve ter me visto falando que as ferramentas para desenvolvimento mobile ainda deixam a desejar, independente da tecnologia usada. Algumas tarefas básicas do dia a dia são mais complicadas do que deveriam. Isso tem melhorado com lançamentos como o Instant Run do Android Studio, e o LiveXAML para Xamarin.Forms. A novidade agora é para o emulador do Android, que ganhou um update para tornar a inicialização mais rápida com o Android Emulator Quick Boot.

Android Emulator Quick Boot

O Quick Boot do Android Emulator é um novo recurso recém-lançado para fazer seu emulador abrir mais rápido. Quão mais rápido? Instantaneamente mais rápido.

android emulator quick boot

A imagem acima não tem edição! É realmente possível fazer o seu emulador Android inicializar assim agora. Além disso, o emulador ganhou diversas otimizações que melhoraram sua performance na nova versão.

O Quick Boot funciona como um snapshot de uma máquina virtual, ele grava o estado quando você fecha o emulador e sempre que possível inicializa com esse snapshot para ganhar tempo.

Mas o melhor foi quando li essa parte:

No additional setup is required because Quick Boot is enabled by default starting with Android Emulator v27.0.2

O Quick Boot vem habilitado por padrão nas versões 27.0.2+ do emulador. Isso significa que além de funcionar com Xamarin, ele já pode ser usado, basta atualizar!

Xamarin e Android Quick Boot

A primeira coisa que fiz foi testar no meu Android Studio para ter certeza de que não estavam mentindo pra mim, e realmente o emulador inicializou instantaneamente após ter um snapshot salvo no disco. Fui correndo testar no meu Visual Studio for Mac pra poder compartilhar a boa notícia com o time de Xamarin da Lambda3, e pra minha tristeza, não funcionou. Mas por que? Dado que é um recurso independente de tecnologia usada e habilitado por padrão?

Talvez você esteja se perguntando a mesma coisa e é possível que não esteja funcionando pra você também. Justamente por isso fui ao Twitter, e depois de vários palpites e tweets com Jon Douglas, engenheiro da Xamarin, identificamos o problema. Então vamos à solução!

Fazendo funcionar com Xamarin

A solução é semelhante, tanto para Visual Studio quanto para Visual Studio for Mac, basicamente só muda as telas.

O primeiro passo é garantir que você tem o Android Emulator 27.0.2+ instalado. Vá no Android SDK Manager do seu Visual Studio e na aba “Tools” garanta que está com a versão correta instalada:

android sdk emulator

Mas ter só isso não garante que o quick boot funcionará, isso pode acontecer caso você esteja utilizando um Android SDK Tools menor que 26. Então é preciso também garantir que você esteja com a versão atualizada do Android SDK Tools. No mesmo menu, selecione o Android SDK Tools 26.1.1 ou superior:

android sdk tools

Pronto! Agora você deve enxergar uma mensagem na primeira inicialização indicando que está usando o quick boot, ao fechar o emulador ele deve salvar o snapshot também. A segunda inicialização já deve ser instantânea assim:

android emulator quick boot

Ah, mas tem um último detalhe!

Cadê meu Emulator Manager?

Eu não tinha atualizado para o SDK Tools 26 porque o Google Emulator Manager foi descontinuado nas versões 26+. Se você já chegou a atualizar deve ter recebido essa mensagem ao tentar abrir o Google Emulator Manager, informando que ele não funciona com a sua versão do Android SDK Tools:

google emulator manager warning

Você pode viver sem ele, utilizando a ferramenta de linha de comando android para criar e gerenciar emuladores.

Uma outra alternativa é utilizar uma nova ferramenta da Xamarin: Xamarin Android Device Manager. Assim como o Android Studio tem sua própria ferramenta gráfica para que você não fique preso somente à linha de comando, a Xamarin criou a dela. Ela ainda está em Preview e está bem crua, mas já é alguma coisa. Você pode ver como instalá-la para Windows ou Mac na documentação.

Atente-se para os pré-requisitos dela, você precisará ter o Android SDK 26 (Android 8.0) instalado.

Caso queira reverter isso, é só voltar na tela de escolha do Android SDK Tools, você verá que existe um radio button que permite voltar para a versão mais recente da 25, mas aí você não terá o quick boot funcionando com o Visual Studio.

Caso você não possa atualizar para o Android SDK Tools 26 por algum motivo, existe um workaround para ter o Android SDK Tools 25 e o quick boot. Você ainda precisa do emulador 27.0.2 instalado, com isso você pode inicializar o emulador por linha de comando assim:

$ANDROID_HOME/emulator/emulator -avd NOME -gpu on 

Onde $ANDROID_HOME é a pasta de instalação do SDK do Android, NOME é o nome do emulador que gostaria de inicializar e a opção de gpu não é obrigatória caso não esteja usando. A mágica está em acessar o emulator da pasta emulator e não da pasta tools, como é feito normalmente. Esse método é apenas um workaround e não deve ser uma solução definitiva. A Google sugere sempre utilizar o emulator da pasta tools.

E se o emulador travar?

Se o emulador travar, quando você fechá-lo ele vai gravar um estado que torna seu emulador inútil. E agora, como forçar um clean boot?

Se estiver utilizando o Xamarin Android Emulator Manager, você precisa editar o AVD e adicionar a chave:

fastboot.forceColdBoot=yes

Caso esteja utilizando o fallback da linha de comando, execute:

$ANDROID_HOME/emulator/emulator -avd NOME -gpu on -no-snapshot-load

Assim ele vai inicializar sem utilizar o snapshot com problemas.

Conclusão

As ferramentas para desenvolvimento estão evoluindo, ainda tem um bom caminho a ser percorrido, mas pequenos ganhos assim são muito importantes para tornar nossa vida um pouco mais fácil.

E você, já está usando o Android Emulator com Quick Boot? O que achou?

Update: o próprio Jon Douglas acabou de blogar sobre isso aqui também.

Tweet about this on TwitterShare on FacebookShare on LinkedInEmail this to someone
Comments

3 Comments

[WINDOWS] Android Emulator Quick Boot: inicialização mais rápida do emulador - High5Devs

[…] citado pelo Mahmoud o emulador Android ganhou um update para tornar a inicialização mais rápida com o Android Emulato… (Acesse o post para ler mais sobre o Quick […]

Wennder

Muito bom, Mud!
Aqui já está com Quick Boot.

Mahmoud Ali

Muito bom, né?


Leave a Comment