Snapshots

Um snapshot é uma imagem armazenada de um Dispositivo virtual Android (AVD, na sigla em inglês) que preserva todo o estado do dispositivo no momento em que foi salvo. Isso inclui as configurações do SO, o estado do app e os dados do usuário. É possível retornar a um estado salvo do sistema carregando um snapshot. Assim, você não perde tempo esperando que o sistema operacional e os apps no dispositivo virtual sejam reiniciados, além de poupar o esforço de fazer seu app voltar para o estado em que você quer retomar o teste. A inicialização de um dispositivo virtual pelo carregamento de um snapshot é muito semelhante a inicializar um dispositivo físico de um estado de suspensão, em vez de inicializá-lo de um estado desligado.

Para cada AVD, você pode ter um snapshot de Quick Boot e quantos snapshots gerais quiser.

A maneira mais simples de aproveitar os snapshots é usar um snapshot de inicialização rápida. Por padrão, cada AVD é configurado para salvar automaticamente um snapshot de Quick Boot ao sair e carregar de um snapshot de Quick Boot ao iniciar.

Na primeira vez que um AVD é iniciado, ele precisa realizar uma inicialização a frio, que é semelhante a ligar um dispositivo. Se o Quick Boot estiver ativado, todas as inicializações seguintes vão ser carregadas do snapshot especificado, e o sistema vai ser restaurado para o estado salvo nesse snapshot.

Um AVD pode ser inicializado até 10 vezes mais rápido usando um snapshot do Quick Boot do que um Cold Boot. Por isso, recomendamos usar o Quick Boot (quando possível) após a primeira inicialização do AVD.

Os snapshots são válidos para a imagem do sistema, configuração do AVD e recursos do emulador com que são salvos. Ao fazer uma mudança em qualquer uma dessas áreas, todos os snapshots do AVD afetado se tornam inválidos. Qualquer atualização nas configurações do Android Emulator, da imagem do sistema ou do AVD redefine o estado salvo do AVD. Sendo assim, na próxima vez que você iniciar o AVD, ele vai precisar realizar uma inicialização a frio.

A maioria dos controles para salvar, carregar e gerenciar snapshots está nas guias Snapshots e Settings do painel Snapshots. Se você está executando o emulador em uma janela de ferramentas no Android Studio, o botão do painel Snapshots está na barra de ferramentas do emulador. Se você está executando o emulador em uma janela autônoma fora do Android Studio, o painel Snapshots está na janela Extended controls.

Você também pode controlar as opções do Quick Boot ao iniciar o emulador pela linha de comando.

Salvar snapshots de Quick Boot

Você pode especificar se o emulador salva automaticamente um snapshot quando você o fecha. Para controlar esse comportamento, faça o seguinte:

  1. Abra as configurações de snapshots. Se o emulador estiver incorporado no Android Studio, clique em Snapshots na barra de ferramentas. Se o emulador estiver em uma janela separada, abra a janela Extended controls.
  2. Na categoria Snapshots de controles, navegue até a guia Settings.
  3. Use o menu Auto-save current state to Quickboot para selecionar uma das seguintes opções:

    • Yes: sempre salva um snapshot do AVD quando você fecha o emulador. Esse é o padrão.

    • No: não salva um snapshot do AVD quando você fecha o emulador.

Sua seleção se aplica apenas ao AVD aberto. Não é possível salvar snapshots enquanto o ADB está off-line. Por exemplo, enquanto o AVD ainda está sendo inicializado.

Salvar snapshots gerais

Embora você só possa ter um snapshot de Quick Boot para cada AVD, pode ter vários snapshots gerais para cada um deles.

Para salvar um snapshot geral, abra o painel Snapshots e clique no botão Take snapshot, no canto inferior direito.

Para editar o nome e a descrição do snapshot selecionado, clique no botão de edição , na parte de baixo da janela.

Excluir um snapshot

Para excluir um snapshot manualmente, abra o painel Snapshots, selecione o desejado e clique no botão de exclusão na parte de baixo da janela.

Você também pode especificar se quer que o emulador exclua automaticamente os snapshots que se tornam inválidos, por exemplo, quando as configurações do AVD ou a versão do emulador mudarem. Por padrão, o emulador pergunta se você quer excluir snapshots inválidos. Essa configuração pode ser mudada com o menu Delete invalid snapshots na guia Settings do painel Snapshots.

Carregar um snapshot

Para carregar um snapshot a qualquer momento, abra o painel Snapshots do emulador, selecione a categoria Snapshots, escolha um snapshot e clique no botão de carregamento , localizado na parte de baixo do painel.

No Android Studio 3.2 e versões mais recentes, cada configuração do dispositivo inclui um controle de Opção de inicialização nas configurações avançadas da caixa de diálogo Virtual Device Configuration. Você pode usar o controle para especificar qual snapshot será carregado quando o AVD for iniciado.

Desativar o Quick Boot

Se você quer desativar o Quick Boot para que o AVD sempre realize uma inicialização a frio, siga estas etapas:

  1. Selecione Tools > Device Manager e clique em Edit this AVD .
  2. Clique em Show Advanced Settings e role para baixo até Emulated Performance.
  3. Selecione Cold boot.

Inicializar a frio uma vez

Em vez de desativar completamente o Quick Boot, você pode fazer uma inicialização a frio clicando em Cold Boot no menu do AVD no Gerenciador de dispositivos.

Requisitos e solução de problemas para snapshots

  • Os snapshots não funcionam com o Android 4.0.4 (nível 15 da API) ou anterior.
  • Os snapshots não funcionam com imagens de sistema ARM para o Android 8.0 (nível 26 da API).
  • Se o emulador falhar ao inicializar de um snapshot, selecione Cool Boot para o AVD no Gerenciador de dispositivos e envie um relatório do bug.
  • Os snapshots não são confiáveis quando a renderização de software está ativada. Se os snapshots não funcionarem, clique em Edit this AVD no Device Manager e mude a opção Graphics para Hardware ou Automatic.
  • Carregar ou salvar um snapshot é uma operação que consome muita memória. Se você não tiver RAM suficiente quando uma operação de carregamento ou de salvamento for iniciada, o sistema operacional poderá alternar o conteúdo da RAM para o disco rígido, o que pode diminuir muito a velocidade da operação. Se você notar uma demora exagerada para carregar ou salvar snapshots, poderá acelerar essas operações liberando RAM. Uma boa maneira de fazer isso é fechar os apps que não são essenciais para seu trabalho.