Mürekkepbalığı: 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. Mürekkepbalığı cihazının anlık görüntüsünü almak, cihazın durumunu diskteki bir resme kaydetmenize olanak tanır. 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ükleyebilmeniz 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 iş akışı örneği de bir uygulamanın davranışını test ederkendir. Bir uygulamanın davranışını bir dizi işleme göre test ederken, uygulama çalışırken işlemler arasında bir anlık görüntü alabilirsiniz. Böylece, baştan başlatmak zorunda kalmadan bu anlık görüntüye geri dönebilirsiniz. Ö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ürekkepbalığı cihazının anlık görüntüsünü alma

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 gönderir. Ardından anlık görüntü, vCPU durumunu, belleği ve cihaz durumunu belirtilen 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'yi ç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, Cuttlefish 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'ü ç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ünün bulunduğu 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ünün bulunduğu yeni klasörün oluşturulduğu belirtilen yol.

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

Mürekkepbalığı cihazını geri yükleme

Cuttlefish cihaz anlık görüntüsü geri yüklenirken, anlık görüntünün alındığı Cuttlefish örneği durdurulmalıdır. Örnek zaten durdurulmuşsa başka bir işlem yapmanız gerekmez ve anlık görüntü geri yüklenebilir.

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

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

Mürekkepbalığı 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). Cuttlefish 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ğrulama

Anlık görüntü/geri yükleme özelliği, aşağıdaki test çalıştırılarak doğrulanabilir:

atest SnapshotTest