Mürekkep balığı: Anlık görüntü ve geri yükleme

Android 15, Cuttlefish sanal cihazının anlık görüntüsünü alma ve geri yükleme işlemlerini kullanıma sunar. Bir Kesme balığı cihazının anlık görüntüsünü alarak cihazın durumunu disk üzerindeki bir görüntüye kaydedebilirsiniz. Ardından, bir Cuttlefish cihazını daha önce kaydedilen duruma getirmek için anlık görüntüyü geri yükleyebilirsiniz.

Anlık görüntüleri çeşitli otomatik veya manuel iş akışlarında kullanabilirsiniz. Cihazda değişiklik yapan bir işlem gerçekleştirirken cihazı belirli bir duruma geri yükleyebilmek için cihazın anlık görüntüsünü alabilirsiniz. Örneğin, cihazın durumunu değiştiren ve sonraki testlerde soruna veya kararsızlığa neden olabilecek test paketlerini çalıştırırken, bir testten sonra cihazı kayıtlı bir duruma geri yükleyebilmeniz için anlık görüntü alabilirsiniz. Böylece, sonraki testlerin sorunsuz şekilde çalışmasını sağlayabilirsiniz.

Anlık görüntülerin yararlı olduğu bir başka iş akışı da uygulamanın davranışını test etmektir. Bir uygulamanın davranışını bir dizi işleme göre test ederken, uygulama çalışırken işlemler arasında anlık görüntü alarak baştan yeniden başlatmanıza gerek kalmadan bu anlık görüntüyü geri yükleyebilirsiniz. Örneğin, bir oyunu başlatmanın açılma süresi uzunsa ana menüye ulaştıktan sonra cihazı bu duruma geri yüklemek için cihazın anlık görüntüsünü alabilirsiniz. Böylece, cihazın açılma süresini atlayabilirsiniz.

Mürekkep balığı cihazının anlık görüntüsünü çek

Bir cihazın anlık görüntüsü alınırken, Cuttlefish cihazının kararlı bir durumda olduğundan emin olmak için Cuttlefish cihazı askıya alınmalıdır. Cihaz askıya alındığında, tüm vCPU'lar ve cihazlar durdurulur ve tüm arabellekler durumlarını sanal makineye aktarır. Ardından anlık görüntü; vCPU durumunu, belleği ve cihaz durumunu belirtilen bir hedef klasördeki diske kaydeder.

VirtiosFS desteklenmez ve anlık görüntü alırken devre dışı bırakılmalıdır. VirtioFS'yi devre dışı bırakmak için cvd create veya cvd start çalıştırırken --enable_virtiofs=false bağımsız değişkenini iletin.

Anlık görüntüler için yalnızca SwiftShader (guest_swiftshader) GPU modu desteklenir. Diğer hızlandırılmış grafik modları desteklenmez.

Aşağıdaki adımlarda, bir Mürekkep balığı cihazını başlatma ve anlık görüntü alma işlemi açıklanmaktadır.

  1. VirtioFS'yi devre dışı bırakarak bir cihazı başlatın. (Ardından cihazı kullanabilirsiniz.)

    cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshader
  2. Aşağıdaki işaretlerle cvd snapshot_take komutunu çalıştırarak anlık görüntü alın:

    • --force: Belirtilen anlık görüntü yolunda bir klasör varsa bu işaret, mevcut klasörün silinmesini ve anlık görüntüyü içeren anlık görüntü yolunda yeni bir klasör oluşturulmasını sağlar

    • --auto_suspend: Anlık görüntü alınmadan önce cihazı askıya alır ve anlık görüntü alındıktan sonra cihazı devam ettirir.

    • --snapshot_path: Anlık görüntüyle yeni bir klasörün oluşturulduğu belirtilen yol.

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

Mürekkep balığı cihazını geri yükleme

Mürekkep balığı cihaz anlık görüntüsünü geri yüklerken, anlık görüntünün alındığı Mürekkep balığı örneği durdurulmalıdır. Örnek zaten durdurulduysa başka bir işlem yapmanız gerekmez ve anlık görüntü geri yüklenebilir.

Bir Mürekkep balığı cihazının anlık görüntüsünü geri yüklemek için cihazı cvd create ile başlatın ve anlık görüntü yolunu ekleyin. Anlık görüntünün alındığı Mürekkep balığı cihazının temel örnek numarası, geçerli Cuttlefish örneğinin temel örnek numarasından farklıysa --base_instance_num işaretini kullanarak bu temel örnek numarasını iletin.

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

Mürekkep balığı cihazını askıya alma

Cuttlefish cihazını, anlık görüntü almadan askıya alabilirsiniz (durumu kaydetmek için disk alanı kullanılmaz). Mürekkep balığı cihazını askıya almak için şu komutu çalıştırın:

cvd suspend

Mürekkepbalığı cihazını devam ettirme

Askıya alınan bir Mürekkep Balığı cihazını devam ettirmek için şunları çalıştırın:

cvd resume

Anlık görüntü/Geri yükleme özelliğini doğrulayın

Anlık Görüntü/Geri Yükleme özelliği, aşağıdaki test uygulanarak doğrulanabilir:

atest SnapshotTest