Android 15, Cuttlefish sanal cihazının anlık görüntüsünü alma ve geri yükleme yöntemini sunar. Cuttlefish cihazının anlık görüntüsünü alarak cihazın durumunu diskteki bir resme kaydedebilirsiniz. Ardından, Cuttlefish cihazını daha önce kaydedilmiş 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. Cihazı değiştiren bir prosedür uygularken, 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 sorunlara veya dengesizliklere neden olabilecek test paketlerini çalıştırırken, testten sonra cihazı kaydedilmiş bir duruma geri yükleyebilmek için anlık görüntü alabilirsiniz. Böylece sonraki testlerin sorunsuz bir şekilde çalışmasını sağlayabilirsiniz.
Anlık görüntülerin yararlı olduğu bir diğer örnek iş akışı da uygulamanın davranışını test etmektir. Bir dizi işleme dayalı olarak uygulamanın davranışını test ederken, uygulamayı baştan başlatmak zorunda kalmadan anlık görüntüye geri dönmenizi sağlamak için uygulama çalışırken işlemler arasında anlık görüntü alabilirsiniz. Örneğin, bir oyunun başlatılması uzun sürüyorsa ana menüye ulaştıktan sonra anlık görüntü alabilirsiniz. Böylece cihazı bu duruma geri yükleyerek başlatma süresini atlayabilirsiniz.
Cuttlefish 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ı durumda olduğundan emin olmak için Cuttlefish cihazı askıya alınmalıdır. Cihaz askıya alındığında tüm sanal CPU'lar ve cihazlar durdurulur ve tüm arabellekler durumlarını sanal makineye gönderir. 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ınırken devre dışı bırakılmalıdır. VirtioFS'yi devre dışı bırakmak için cvd create veya cvd start çalıştırılı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ı başlatma ve anlık görüntü alma süreci açıklanmaktadır.
VirtioFS'yi devre dışı bırakırken bir cihazı başlatın. (Ardından cihazı kullanabilirsiniz.)
cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshaderAşağıdaki işaretlerle
cvd snapshot_takekomutunu ç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ünün bulunduğu yeni klasörün oluşturulduğu belirtilen yol.
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
Cuttlefish cihazı geri yükleme
Bir 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.
Bir 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ı, mevcut Cuttlefish örneğinin temel örnek numarasından farklıysa --base_instance_num işaretini kullanarak temel örnek numarasını iletin.
cvd create --snapshot_path=PATH \
--base_instance_num=IDCuttlefish cihazını askıya alma
Anlık görüntü almadan bir Cuttlefish cihazını askıya alabilirsiniz (durumu kaydetmek için disk alanı kullanılmaz). Bir Cuttlefish cihazını askıya almak için şu komutu çalıştırın:
cvd suspendCuttlefish cihazını devam ettirme
Askıya alınmış bir Cuttlefish cihazını devam ettirmek için şu komutu çalıştırın:
cvd resumeAnlı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