Android 15 explique comment prendre 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 le 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 divers 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'appareil dans un état enregistré 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 prend beaucoup de temps, vous pouvez prendre un instantané après avoir atteint le menu principal afin de restaurer l'état de l'appareil à cet état, en ignorant le temps de mise en service.
Prendre un instantané d'un appareil Cuttlefish
Lorsque vous prenez un instantané d'un appareil, celui-ci doit être suspendu pour garantir qu'il est 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, la mémoire et l'état de l'appareil sur le 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
lors de l'exécution de 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 compatibles.
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
Prenez 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 une fois l'instantané pris.--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 de seiche
Lors de la restauration d'un instantané d'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é pris 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 seiche
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 seiche
Pour réactiver un appareil Cuttlefish suspendu, exécutez la commande suivante :
cvd resume
Valider la fonctionnalité Instantané/Restauration
La fonctionnalité Instantané/Restauration peut être validée en exécutant le test suivant:
atest SnapshotTest