Uno snapshot è l'immagine archiviata di un dispositivo virtuale Android che conserva l'intero stato del dispositivo nel momento in cui è stato salvato, inclusi le impostazioni del sistema operativo, lo stato dell'applicazione e i dati utente. Puoi tornare allo stato di sistema salvato caricando uno snapshot. In questo modo puoi risparmiare il tempo di attesa per il riavvio del sistema operativo e delle applicazioni sul dispositivo virtuale e non perdere il tempo necessario per riportare l'app allo stato in cui vuoi riprendere i test. Avviare un dispositivo virtuale caricando uno snapshot è un po' come riattivare un dispositivo fisico da uno stato di sospensione, invece di avviarlo da uno stato spento.
Per ogni durata di visualizzazione media, puoi avere uno snapshot Avvio rapido e un numero qualsiasi di snapshot generali.
Il modo più semplice per sfruttare gli snapshot è utilizzare uno snapshot di Avvio rapido. Per impostazione predefinita, ogni durata di visualizzazione media è impostata in modo da salvare automaticamente uno snapshot dell'Avvio rapido all'uscita e caricarlo da uno snapshot dell'Avvio rapido all'avvio.
La prima volta che si avvia una durata di visualizzazione media, deve eseguire un avvio a freddo, proprio come accendere su un dispositivo. Se l'Avvio rapido è abilitato, tutti i successivi vengono caricati dallo snapshot specificato e il sistema viene ripristinato allo stato salvato nello snapshot.
Utilizzando uno snapshot di Avvio rapido, è possibile avviare fino a 10 volte più velocemente rispetto all'avvio a freddo. Ecco perché consigliamo di utilizzare Avvio rapido (se possibile) dopo l'avvio iniziale della durata di visualizzazione media.
Gli snapshot sono validi per le funzionalità dell'immagine di sistema, della configurazione AVD e dell'emulatore in cui sono salvati. Quando apporti una modifica in una di queste aree, tutti gli snapshot della durata di visualizzazione media interessata non sono più validi. Qualsiasi aggiornamento alle impostazioni dell'emulatore, dell'immagine di sistema o della durata di visualizzazione media per Android reimposta lo stato salvato della durata di visualizzazione media, quindi la prossima volta che la avvii, dovrà eseguire un avvio a freddo.
La maggior parte dei controlli per il salvataggio, il caricamento e la gestione degli snapshot si trova nelle schede Snapshot e Impostazioni nel riquadro Snapshot. Se esegui l'emulatore in una finestra degli strumenti in Android Studio, il pulsante del riquadro Snapshot si trova nella barra degli strumenti dell'emulatore. Se esegui l'emulatore in una finestra separata esterna ad Android Studio, il riquadro Snapshot si trova nella finestra Controlli estesi.
Puoi anche controllare le opzioni di Avvio rapido quando avvii l'emulatore dalla riga di comando.
Salva istantanee di Avvio rapido
Puoi specificare se l'emulatore salva automaticamente uno snapshot alla chiusura. Per controllare questo comportamento, procedi come segue:
- Apri le impostazioni degli snapshot. Se l'emulatore è incorporato in Android Studio, fai clic su Snapshot nella barra degli strumenti. Se l'emulatore si trova in una finestra separata, apri la finestra Controlli estesi.
- Nella categoria di controlli Snapshot, vai alla scheda Impostazioni.
Utilizza il menu Salva automaticamente lo stato corrente in Quickboot per selezionare una delle seguenti opzioni:
Sì: salva sempre un'istantanea della durata di visualizzazione media quando chiudi l'emulatore. Questa è l'impostazione predefinita.
No: non salvare un'istantanea della durata di visualizzazione media quando chiudi l'emulatore.
La selezione viene applicata solo alla durata di visualizzazione media aperta. Non puoi salvare gli snapshot mentre ADB è offline (ad esempio mentre la durata di visualizzazione media è ancora in fase di avvio).
Salva snapshot generali
Puoi avere un solo snapshot dell'Avvio rapido per ogni durata di visualizzazione media, ma puoi avere più snapshot generali per ogni durata di visualizzazione media.
Per salvare uno snapshot generale, apri il riquadro Snapshot e fai clic sul pulsante Scatta istantanea nell'angolo in basso a destra.
Per modificare il nome e la descrizione dello snapshot selezionato, fai clic sul pulsante Modifica nella parte inferiore del riquadro.
Elimina uno snapshot
Per eliminare manualmente uno snapshot, apri il riquadro Snapshot, seleziona lo snapshot e fai clic sul pulsante Elimina nella parte inferiore del riquadro.
Puoi anche specificare se vuoi che l'emulatore elimini automaticamente gli snapshot quando non sono più validi, ad esempio quando cambiano le impostazioni di visualizzazione di pagina, o la versione dell'emulatore. Per impostazione predefinita, l'emulatore ti chiede se vuoi eliminare snapshot non validi. Puoi modificare questa impostazione con il menu Elimina snapshot non validi nella scheda Impostazioni del riquadro Snapshot.
Carica uno snapshot
Per caricare uno snapshot in qualsiasi momento, apri il riquadro Snapshot dell'emulatore, seleziona la categoria Snapshot, scegli uno snapshot e fai clic sul pulsante Carica nella parte inferiore del riquadro.
In Android Studio 3.2 e versioni successive, ogni configurazione del dispositivo include un controllo Opzione di avvio nelle impostazioni avanzate della finestra di dialogo Configurazione dispositivo virtuale. Puoi utilizzare il controllo per specificare quale snapshot caricare all'avvio della durata di visualizzazione media.
Disattiva Avvio rapido
Se vuoi disabilitare l'Avvio rapido in modo che la durata di visualizzazione media esegua sempre l'avvio a freddo, procedi nel seguente modo:
- Seleziona Strumenti > Gestione dispositivi e fai clic su Modifica questa durata di visualizzazione media .
- Fai clic su Mostra impostazioni avanzate e scorri verso il basso fino a Prestazioni emulate.
- Seleziona Avvio a freddo.
Avvio a freddo una volta
Anziché disattivare completamente l'Avvio rapido, puoi eseguire l'avvio a freddo facendo clic su Avvio a freddo dal menu della barra di visualizzazione video in Gestione dispositivi.
Requisiti e risoluzione dei problemi relativi agli snapshot
- Gli snapshot non funzionano con Android 4.0.4 (livello API 15) o versioni precedenti.
- Gli snapshot non funzionano con le immagini di sistema ARM per Android 8.0 (livello API 26).
- Se l'emulatore non si avvia da uno snapshot, seleziona Avvio a freddo per la durata di visualizzazione media in Gestione dispositivi e invia una segnalazione di bug.
- Gli snapshot non sono affidabili quando è abilitato il rendering software. Se gli snapshot non funzionano, fai clic su Modifica questa durata di visualizzazione media in Gestione dispositivi e imposta Grafica su Hardware o Automatico.
- Il caricamento o il salvataggio di uno snapshot è un'operazione che richiede molta memoria. Se all'avvio di un'operazione di caricamento o salvataggio non hai sufficiente RAM libera, il sistema operativo potrebbe scambiare i contenuti della RAM sul disco rigido, il che può rallentare notevolmente l'operazione. Se riscontri caricamenti o salvataggi di snapshot molto lenti, potresti essere in grado di velocizzare queste operazioni liberando RAM. Chiudere le applicazioni non essenziali per il tuo lavoro è un buon modo per liberare RAM.