Android 15 explique comment prendre un instantané et restaurer un instantané d'un appareil virtuel Cuttlefish. Prendre un instantané d'un appareil Cuttlefish vous permet d'enregistrer l'état de l'appareil dans une image sur disque. Vous pouvez ensuite restaurer l'instantané pour rétablir l'état précédemment enregistré d'un appareil Cuttlefish.
Vous pouvez utiliser des instantanés dans différents workflows automatisés ou manuels. Lorsque vous effectuez une procédure qui modifie l'appareil, vous pouvez prendre un instantané de l'appareil pour vous assurer de pouvoir le restaurer à un état spécifié. Par exemple, lorsque vous exécutez des suites de tests qui modifient l'état de l'appareil et peuvent potentiellement causer des problèmes ou des instabilités dans les tests suivants, vous pouvez prendre une capture d'écran afin de restaurer l'état enregistré de l'appareil après un test, ce qui garantit que les tests suivants s'exécutent correctement.
Un autre exemple de workflow dans lequel les instantanés sont utiles est le test du comportement d'une application. Lorsque vous testez le comportement d'une application basée sur un ensemble d'actions, vous pouvez prendre un instantané entre les actions lorsque l'application est en cours d'exécution pour vous permettre de restaurer cet instantané sans avoir à redémarrer depuis le début. Par exemple, si le lancement d'un jeu nécessite un long temps d'affichage, vous pouvez prendre une capture d'écran après avoir atteint le menu principal afin de restaurer l'appareil à cet état, en ignorant le temps d'affichage.
Prendre un instantané d'un appareil Cuttlefish
Lorsque vous prenez un instantané d'un appareil, l'appareil Cuttlefish doit être suspendu pour s'assurer qu'il est dans un état stable. Lorsque l'appareil est suspendu, tous les vCPU et appareils sont arrêtés, et tous les tampons transfèrent leur état à la VM. L'instantané enregistre ensuite l'état du processeur virtuel, de la mémoire et de l'appareil sur disque dans un dossier de destination spécifié.
VirtiosFS n'est pas compatible et doit être désactivé lors de la création d'un instantané. Pour désactiver VirtioFS, transmettez l'argument --enable_virtiofs=false
lorsque vous exécutez cvd create
ou cvd start
.
Seul le mode GPU SwiftShader (guest_swiftshader
) est compatible avec les instantanés. Les autres modes graphiques accélérés ne sont pas acceptés.
Les étapes suivantes décrivent le processus de lancement d'un appareil Cuttlefish et de création d'un instantané.
Lancez un appareil tout en désactivant VirtioFS. (Vous pouvez ensuite utiliser l'appareil.)
cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshader
Créez un instantané en exécutant
cvd snapshot_take
avec les options suivantes:--force
: si un dossier existe au chemin d'accès à l'instantané spécifié, cet indicateur garantit que le dossier existant est supprimé et qu'un nouveau dossier est créé au chemin d'accès à l'instantané contenant l'instantané.--auto_suspend
: suspend l'appareil avant la prise de l'instantané et le redémarre après la prise de l'instantané.--snapshot_path
: chemin d'accès spécifié dans lequel un dossier est créé avec l'instantané.
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
Restaurer un appareil Cuttlefish
Lors de la restauration d'un instantané de l'appareil Cuttlefish, l'instance Cuttlefish pour laquelle l'instantané a été pris doit être arrêtée. Si l'instance est déjà arrêtée, aucune autre action n'est requise et l'instantané peut être restauré.
Pour restaurer un instantané d'un appareil Cuttlefish, lancez un appareil avec cvd create
et incluez le chemin d'accès à l'instantané. Si le numéro d'instance de base de l'appareil Cuttlefish sur lequel l'instantané a été créé est différent du numéro d'instance de base de l'instance Cuttlefish actuelle, transmettez ce numéro d'instance de base à l'aide de l'indicateur --base_instance_num
.
cvd create --snapshot_path=PATH \
--base_instance_num=ID
Suspendre un appareil Cuttlefish
Vous pouvez suspendre un appareil Cuttlefish sans prendre d'instantané (aucun espace disque n'est utilisé pour enregistrer l'état). Pour suspendre un appareil Cuttlefish, exécutez la commande suivante:
cvd suspend
Réactiver un appareil Cuttlefish
Pour réactiver un appareil Cuttlefish suspendu, exécutez la commande suivante:
cvd resume
Valider la fonctionnalité Instantané/Restauration
Vous pouvez valider la fonctionnalité de snapshot/restauration en exécutant le test suivant:
atest SnapshotTest