Instantanés

Un instantané est l'image stockée d'un appareil virtuel Android (AVD). Il conserve l'intégralité de l'état de l'appareil au moment où il a été enregistré, y compris les paramètres du système d'exploitation, l'état de l'application et les données utilisateur. Pour revenir à l'état enregistré du système, vous pouvez charger un instantané quand vous le souhaitez. Vous économisez ainsi le temps d'attente nécessaire au redémarrage du système d'exploitation et des applications de l'appareil virtuel, et la nécessité de restaurer votre application dans l'état où vous souhaitez reprendre les tests. Lancer un appareil virtuel en chargeant un instantané revient à activer un appareil physique à partir d'un état de mise en veille, plutôt qu'à le démarrer après avoir été éteint.

Pour chaque AVD, vous pouvez avoir un instantané Quick Boot et un nombre illimité d'instantanés généraux.

Le moyen le plus simple de tirer parti des instantanés consiste à utiliser un instantané Quick Boot. Par défaut, chaque AVD est configuré pour enregistrer automatiquement un instantané Quick Boot à la fermeture et le chargement à partir d'un instantané Quick Boot au démarrage.

La première fois qu'un AVD démarre, il doit effectuer un démarrage à froid, tout comme lorsqu'un appareil est allumé. Si Quick Boot est activé, tous les démarrages suivants sont chargés à partir de l'instantané spécifié, et le système est restauré à l'état enregistré dans cet instantané.

Les instantanés sont valides pour l'image système, la configuration de l'AVD et les fonctionnalités de l'émulateur avec lesquelles ils sont enregistrés. Si vous apportez une modification à ces paramètres, tous les instantanés de l'AVD concerné ne sont plus valides. Toute mise à jour des paramètres d'Android Emulator, de l'image système ou de l'AVD réinitialise l'état enregistré. Par conséquent, la prochaine fois que vous démarrerez l'AVD, il devra effectuer un démarrage à froid.

La plupart des commandes permettant d'enregistrer, de charger et de gérer les instantanés se trouvent dans les onglets Snapshots (Instantanés) et Settings (Paramètres) du volet Snapshots (Instantanés). Si vous exécutez l'émulateur dans une fenêtre d'outil d'Android Studio, le bouton du volet Snapshots (Instantanés) se trouve dans la barre d'outils de l'émulateur. Si vous exécutez l'émulateur dans une fenêtre distincte en dehors d'Android Studio, le volet Snapshots (Instantanés) se trouve dans la fenêtre Extended controls (Commandes avancées).

Vous pouvez également contrôler les options de Quick Boot lorsque vous démarrez l'émulateur à partir de la ligne de commande.

Enregistrer les instantanés Quick Boot

Vous pouvez spécifier si l'émulateur doit enregistrer automatiquement un instantané à sa fermeture. Pour ce faire, procédez comme suit :

  1. Ouvrez les paramètres des instantanés. Si l'émulateur est intégré à Android Studio, cliquez sur Instantanés dans la barre d'outils. Si l'émulateur se trouve dans une fenêtre distincte, ouvrez la fenêtre Commandes avancées.
  2. Dans la catégorie de commandes Instantanés, accédez à l'onglet Settings (Paramètres).
  3. Dans le menu Auto-save current state to Quickboot (Enregistrer automatiquement l'état actuel sur Quickboot), sélectionnez l'une des options suivantes :

    • Yes (Oui) : enregistre toujours un instantané de l'AVD lorsque vous fermez l'émulateur. Ce paramètre est la valeur par défaut

    • No (Non) : n'enregistre aucun instantané de l'AVD lorsque vous fermez l'émulateur.

Votre sélection ne s'applique qu'à l'AVD actuellement ouvert. Vous ne pouvez pas enregistrer d'instantanés lorsque l'ADB est hors connexion (par exemple, pendant son démarrage).

Enregistrer des instantanés généraux

Si vous ne pouvez avoir qu'un seul instantané Quick Boot pour chaque AVD, vous pouvez avoir plusieurs instantanés généraux pour chaque AVD.

Pour enregistrer un instantané général, ouvrez le volet Snapshots (Instantanés) et cliquez sur le bouton Take snapshot (Créer un instantané) en bas à droite.

Pour modifier le nom et la description de l'instantané sélectionné, cliquez sur le bouton de modification en bas du volet.

Supprimer un instantané

Pour supprimer manuellement un instantané, ouvrez le volet Snapshots (Instantanés), sélectionnez l'instantané, puis cliquez sur le bouton de suppression en bas du volet.

Vous pouvez également indiquer si vous souhaitez que l'émulateur supprime automatiquement les instantanés lorsqu'ils ne sont plus valides, par exemple lorsque les paramètres AVD ou la version de l'émulateur changent. Par défaut, l'émulateur vous demande si vous souhaitez qu'il supprime les instantanés non valides. Vous pouvez modifier ce paramètre via le menu Delete invalid snapshots (Supprimer les instantanés non valides) dans l'onglet Settings (Paramètres) du volet Snapshots (Instantanés).

Charger un instantané

Pour charger un instantané, ouvrez le volet Snapshots (Instantanés), sélectionnez la catégorie Snapshots (Instantanés), choisissez un instantané, puis cliquez sur le bouton de chargement en bas du volet.

Dans Android Studio 3.2 et versions ultérieures, chaque configuration d'appareil inclut une commande d'option de démarrage dans les paramètres avancés de la boîte de dialogue Virtual Device Configuration (Configuration des appareils virtuels). Vous pouvez utiliser cette commande pour spécifier l'instantané à charger au démarrage de cet AVD.

Désactiver Quick Boot

Si vous souhaitez désactiver Quick Boot afin que votre AVD effectue toujours un démarrage à froid, procédez comme suit :

  1. Sélectionnez Tools> Device Manager (Outils > Gestionnaire d'appareils), puis cliquez sur Edit this AVD (Modifier cet AVD) .
  2. Cliquez sur Afficher les paramètres avancés, puis faites défiler la page jusqu'à Performances émulées.
  3. Sélectionnez Démarrage à froid.

Démarrer à froid une fois

Au lieu de désactiver complètement Quick Boot, vous pouvez effectuer un seul démarrage à froid en cliquant sur Cold Boot Now (Démarrage à froid immédiat) dans le menu déroulant de l'AVD dans le Gestionnaire d'appareils.

Conditions requises pour les instantanés et résolution des problèmes

  • Les instantanés ne fonctionnent pas avec Android 4.0.4 (niveau d'API 15) ou version antérieure.
  • Les instantanés ne fonctionnent pas avec les images système ARM pour Android 8.0 (niveau d'API 26).
  • Si l'émulateur ne réussit pas à démarrer à partir d'un instantané, sélectionnez Cold Boot Now (Démarrage à froid immédiat) pour l'AVD dans le Gestionnaire d'appareils, puis envoyez un rapport de bug.
  • Les instantanés ne sont pas fiables lorsque le rendu logiciel est activé. Si les instantanés ne fonctionnent pas, cliquez sur Edit this AVD (Modifier cet AVD) dans le Gestionnaire d'appareils, puis remplacez l'option Graphics (Images) par Hardware (Matériel) ou Automatic (Automatique).
  • Le chargement ou l'enregistrement d'un instantané nécessite beaucoup de mémoire. Si vous ne disposez pas de suffisamment de RAM disponible au début d'une opération de chargement ou d'enregistrement, le système d'exploitation peut transmettre le contenu de la RAM au disque dur, ce qui peut ralentir considérablement l'opération. Si le chargement ou l'enregistrement des instantanés est très lent, vous pouvez peut-être accélérer ces opérations en libérant de la RAM. La fermeture des applications non essentielles pour votre travail est un bon moyen de libérer de la RAM.