Sotong: Mengambil gambar dan memulihkan

Android 15 memperkenalkan cara mengambil snapshot dan memulihkan {i>snapshot<i} perangkat virtual Cuttlefish. Mengambil cuplikan dari Perangkat cumi-cumi memungkinkan Anda menyimpan status perangkat dalam bentuk image pada disk. Anda bisa memulihkan {i>snapshot <i}untuk memunculkan perangkat Cuttlefish ke status yang disimpan sebelumnya.

Anda dapat menggunakan snapshot di berbagai alur kerja otomatis atau manual. Kapan melakukan prosedur yang memodifikasi perangkat, Anda dapat mengambil cuplikan perangkat untuk memastikan Anda dapat memulihkan perangkat ke status tertentu. Misalnya, saat menjalankan rangkaian pengujian yang mengubah status perangkat dan berpotensi menyebabkan masalah atau ketidakstabilan dalam pengujian berikut, Anda dapat mengambil snapshot sehingga Anda dapat memulihkan perangkat ke kondisi tersimpan setelah untuk memastikan bahwa pengujian berikutnya berjalan dengan baik.

Contoh alur kerja lain yang memanfaatkan snapshot adalah saat menguji perilaku aplikasi. Saat menguji perilaku aplikasi berdasarkan serangkaian tambahan, Anda dapat membuat snapshot di antara tindakan saat aplikasi sedang berjalan yang memungkinkan Anda memulihkan ke snapshot tersebut tanpa harus memulai ulang dari memulai. Misalnya, jika peluncuran {i>game<i} memiliki waktu yang lama, Anda dapat mengambil {i>snapshot<i} setelah mencapai menu utama sehingga Anda dapat memulihkan perangkat ke keadaan itu, sehingga melewatkan waktu memunculkan.

Mengambil snapshot perangkat Cuttlefish

Saat mengambil snapshot perangkat, perangkat Cuttlefish harus ditangguhkan untuk memastikan perangkat Cuttlefish dalam keadaan stabil. Saat perangkat ditangguhkan, semua vCPU dan perangkat akan dihentikan, dan semua buffer status mereka ke VM. Snapshot kemudian menyimpan status vCPU, memori, dan status perangkat ke {i>disk<i} di folder tujuan yang ditentukan.

VirtiosFS tidak didukung dan harus dinonaktifkan saat mengambil snapshot. Kepada nonaktifkan VirtioFS, teruskan argumen --enable_virtiofs=false saat menjalankan cvd start.

Hanya mode GPU SwiftShader (guest_swiftshader) yang didukung snapshot. Mode grafis akselerasi lainnya tidak dapat digunakan.

Langkah-langkah berikut menjelaskan proses peluncuran perangkat Cuttlefish dan melakukan snapshot.

  1. Meluncurkan perangkat, sambil menonaktifkan VirtioFS. (Anda kemudian dapat menggunakan perangkat.)

    cvd start --enable_virtiofs=false --gpu_mode=guest_swiftshader
    
  2. Ambil snapshot dengan menjalankan cvd snapshot_take dengan tanda berikut:

    • --force: Jika folder ada di jalur snapshot yang ditentukan, penanda memastikan bahwa folder yang ada akan dihapus, dan folder baru dibuat di jalur snapshot yang berisi snapshot

    • --auto_suspend: Menangguhkan perangkat sebelum snapshot diambil dan melanjutkan perangkat setelah snapshot diambil.

    • --snapshot_path: Jalur yang ditentukan tempat folder baru dibuat dengan snapshot.

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

Memulihkan perangkat Cuttlefish

Ketika memulihkan {i>snapshot <i}perangkat Cuttlefish, instance Cuttlefish untuk tempat {i>snapshot<i} yang diambil harus dihentikan. Jika instance sudah dihentikan, tidak diperlukan tindakan lebih lanjut dan snapshot dapat dipulihkan.

Untuk memulihkan snapshot perangkat Cuttlefish, luncurkan perangkat dengan cvd start dan menyertakan jalur snapshot. Jika nomor instance dasar Sotong, perangkat yang digunakan untuk mengambil snapshot berbeda dengan instance dasar nomor instance Cuttlefish saat ini, teruskan instance dasar tersebut menggunakan flag --base_instance_num.

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

Menangguhkan perangkat Cuttlefish

Anda dapat menangguhkan perangkat Cuttlefish tanpa mengambil snapshot (tidak ada kapasitas disk digunakan untuk menyimpan status). Untuk menangguhkan perangkat Cuttlefish, jalankan:

cvd suspend

Melanjutkan perangkat Cuttlefish

Untuk melanjutkan perangkat Cuttlefish yang ditangguhkan, jalankan:

cvd resume

Memvalidasi fitur Snapshot/Pemulihan

Fitur Ringkasan/Pemulihan dapat divalidasi dengan menjalankan pengujian berikut:

atest SnapshotTest