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 ramener un appareil Cuttlefish à l'état précédemment enregistré.
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 dans un état spécifié. Par exemple, lorsque vous exécutez des suites de tests qui modifient l'état de l'appareil et peuvent potentiellement entraîner des problèmes ou des instabilités dans les tests suivants, vous pouvez prendre un instantané afin de pouvoir restaurer l'appareil dans un état enregistré après un test, en vous assurant que les tests suivants s'exécutent correctement.
Un autre exemple de workflow où les instantanés sont utiles est celui du test du comportement d'une application. Lorsque vous testez le comportement d'une application en fonction d'un ensemble d'actions, vous pouvez prendre un instantané entre les actions pendant l'exécution de l'application pour pouvoir 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 pouvoir restaurer l'appareil à cet état, en évitant le temps de lancement.
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 processeurs virtuels et appareils sont arrêtés, et tous les tampons transmettent leur état à la VM. L'instantané enregistre ensuite l'état du processeur virtuel, de la mémoire et 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
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 compatibles.
Les étapes suivantes décrivent le processus de lancement d'un appareil Cuttlefish et de prise 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 de 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 de l'instantané contenant l'instantané.--auto_suspend
: suspend l'appareil avant la prise de l'instantané et le réactive après.--snapshot_path
: chemin d'accès spécifié où un dossier est créé avec l'instantané.
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
Restaurer un appareil Cuttlefish
Lorsque vous restaurez 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 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é d'instantané/de restauration
Vous pouvez valider la fonctionnalité Snapshot/Restore en exécutant le test suivant :
atest SnapshotTest