Cuttlefish: Instantánea y restablecimiento

Android 15 explica cómo tomar una instantánea restablecer una instantánea de un dispositivo virtual Cuttlefish Tomar una instantánea de un El dispositivo Cuttlefish te permite guardar el estado del dispositivo en una imagen del disco. Luego, puedes restablecer la instantánea para abrir un dispositivo Cuttlefish en el estado guardado previamente.

Puedes usar instantáneas en varios flujos de trabajo automáticos o manuales. Cuándo realizar un procedimiento que modifica el dispositivo, puedes tomar una instantánea el dispositivo para asegurarte de que puedas restablecerlo al estado especificado. Por ejemplo, cuando se ejecutan conjuntos de pruebas que modifican el estado del dispositivo y causar problemas o inestabilidades en las siguientes pruebas puedes tomar una instantánea para restablecer el dispositivo a un estado guardado una prueba, lo que garantiza que las pruebas posteriores se ejecuten de forma correcta.

Otro flujo de trabajo de ejemplo en el que las instantáneas son útiles es cuando se prueban de una app. Cuando pruebas el comportamiento de una app según un conjunto de acciones, puedes tomar una instantánea entre acciones mientras se ejecuta la app para que puedas restablecer a esa instantánea sin tener que reiniciar desde el empezando. Por ejemplo, si el inicio de un juego tarda demasiado tiempo, puedes tomar una instantánea luego de llegar al menú principal para que puedas restablecer el dispositivo a ese estado, y se omitirá el tiempo de activación.

Cómo tomar una instantánea de un dispositivo Cuttlefish

Cuando se toma una instantánea de un dispositivo, el dispositivo Cuttlefish debe suspenderse. para asegurarte de que el dispositivo Cuttlefish se encuentre en un estado estable. Si el dispositivo se suspende, se detienen todas las CPU virtuales y los dispositivos, y todos los búferes su estado a la VM. Luego, la instantánea guarda el estado de la CPU virtual, y el estado del dispositivo en el disco en una carpeta de destino especificada.

VirtiosFS no es compatible y debe inhabilitarse cuando se toma una instantánea. Para inhabilitar VirtioFS, pasar el argumento --enable_virtiofs=false cuando se ejecuta cvd start

Solo se admite el modo de GPU de SwiftShader (guest_swiftshader) en instantáneas. Otros modos gráficos acelerados no son compatibles.

En los siguientes pasos, se describe el proceso de inicio de un dispositivo Cuttlefish y tomar una instantánea.

  1. Iniciar un dispositivo, mientras se inhabilita VirtioFS. (Luego, podrás usar el dispositivo).

    cvd start --enable_virtiofs=false --gpu_mode=guest_swiftshader
    
  2. Ejecuta cvd snapshot_take con las siguientes marcas para tomar una instantánea:

    • --force: Si existe una carpeta en la ruta de acceso de la instantánea especificada, esta garantiza que la carpeta existente se borre y que una carpeta nueva se crea en la ruta de acceso de la instantánea que contiene

    • --auto_suspend: Suspende el dispositivo antes de que se tome la instantánea. reanuda el dispositivo después de que se toma la instantánea.

    • --snapshot_path: Es la ruta de acceso especificada en la que se crea una carpeta nueva. con la instantánea.

    cvd snapshot_take --force --auto_suspend \
    --snapshot_path=PATH
    

Cómo restablecer un dispositivo Cuttlefish

Al restablecer una instantánea de un dispositivo Cuttlefish, la instancia de Cuttlefish en la que se tomó la instantánea debe detenerse. Si la instancia ya está se detuvo, no es necesario realizar ninguna otra acción y se puede restablecer la instantánea.

Para restablecer una instantánea de un dispositivo Cuttlefish, inicia un dispositivo con cvd start. e incluiremos la ruta de acceso de la instantánea. Si el número de instancia base de Cuttlefish el dispositivo en el que se tomó la instantánea es diferente de la instancia base cantidad de la instancia actual de Cuttlefish, pasa esa instancia base con la marca --base_instance_num.

cvd start --snapshot_path=PATH \
--base_instance_num=ID

Cómo suspender un dispositivo Cuttlefish

Puedes suspender un dispositivo Cuttlefish sin tomar una instantánea (sin espacio en el disco). se usa para guardar el estado). Para suspender un dispositivo Cuttlefish, ejecuta lo siguiente:

cvd suspend

Cómo reanudar un dispositivo Cuttlefish

Para reanudar un dispositivo Cuttlefish suspendido, ejecuta lo siguiente:

cvd resume

Valida la función de instantánea/restablecimiento

La función Instantánea/Restablecer se puede validar ejecutando la siguiente prueba:

atest SnapshotTest