Mątwa: zrzut i przywracanie

Android 15 zawiera informacje o tym, jak zrobić zrzut i przywrócić migawkę wirtualnego urządzenia Cuttlefish. Zrobienie migawki urządzenia Cuttlefish pozwala zapisać jego stan w postaci obrazu na dysku. Następnie możesz przywrócić zrzut, aby przywrócić urządzenie Cuttlefish do zapisanego wcześniej stanu.

Możesz używać migawek w różnych przepływach pracy automatycznych lub ręcznych. Podczas wykonywania procedury, która modyfikuje urządzenie, możesz wykonać jego migawkę, aby mieć możliwość przywrócenia go do określonego stanu. Na przykład podczas uruchamiania zestawów testów, które modyfikują stan urządzenia i mogą potencjalnie powodować problemy lub niestabilność w następnych testach, możesz wykonać migawkę, aby po teście przywrócić urządzenie do zapisanego stanu, co zapewni prawidłowe działanie kolejnych testów.

Zrzuty ekranu są przydatne również podczas testowania zachowania aplikacji. Podczas testowania zachowania aplikacji na podstawie zestawu działań możesz wykonać zrzut ekranu między działaniami, gdy aplikacja jest uruchomiona, aby można było przywrócić ten zrzut bez konieczności ponownego uruchamiania od początku. Jeśli na przykład uruchomienie gry trwa długo, możesz zrobić zrzut ekranu po dotarciu do menu głównego, aby przywrócić urządzenie do tego stanu, pomijając czas wyświetlania.

Wykonywanie zrzutu ekranu urządzenia Cuttlefish

Podczas robienia zdjęcia urządzenia Cuttlefish musisz zawiesić urządzenie mątwy, aby mieć pewność, że jest stabilne. Gdy urządzenie jest zawieszone, wszystkie vCPU i urządzenia są zatrzymane, a wszystkie bufory przesyłają swój stan do maszyny wirtualnej. Następnie zrzut zapisze stan vCPU, pamięci i urządzenia na dysku w określonym folderze docelowym.

System VirtiosFS nie jest obsługiwany i należy go wyłączyć podczas robienia zrzutu. Aby wyłączyć VirtioFS, przekaż argument --enable_virtiofs=false podczas uruchamiania cvd create lub cvd start.

W przypadku zrzutów ekranu obsługiwany jest tylko tryb GPU SwiftShader (guest_swiftshader). Inne tryby grafiki z akceleracją nie są obsługiwane.

Poniższe kroki opisują proces uruchamiania urządzenia Cuttlefish i robienia zdjęcia.

  1. Uruchom urządzenie, wyłączając jednocześnie funkcję VirtioFS. (Możesz wtedy korzystać z urządzenia).

    cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshader
  2. Zrób zrzut, uruchamiając cvd snapshot_take z tymi flagami:

    • --force: jeśli folder znajduje się w podanej ścieżce zrzutu, ta flaga gwarantuje, że istniejący folder zostanie usunięty, a w jego ścieżce zostanie utworzony nowy folder, który zawiera zrzut

    • --auto_suspend: powoduje zawieszenie urządzenia przed wykonaniem zrzutu i wznawianie działania urządzenia po wykonaniu zrzutu.

    • --snapshot_path: określona ścieżka, w której tworzony jest nowy folder ze zrzutem.

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

Przywracanie urządzenia Cuttlefish

Podczas przywracania zrzutu urządzenia Cuttlefish należy zatrzymać instancję Cuttlefish, dla której został wykonany zrzut. Jeśli instancja została już zatrzymana, nie musisz nic robić i możesz przywrócić migawkę.

Aby przywrócić migawkę urządzenia Cuttlefish, uruchom urządzenie przy użyciu funkcji cvd create i dołącz ścieżkę zrzutu. Jeśli numer instancji podstawowej urządzenia Cuttlefish, na którym wykonano zrzut ekranu, jest inny niż numer instancji podstawowej bieżącej instancji Cuttlefish, przekaż ten numer za pomocą flagi --base_instance_num.

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

Zawieszanie urządzenia Cuttlefish

Możesz zawiesić urządzenie Cuttlefish bez tworzenia zrzutu (nie jest używane żadne miejsce na dysku do zapisywania stanu). Aby zawiesić urządzenie Cuttlefish, uruchom:

cvd suspend

Wznów urządzenie Cuttlefish

Aby wznowić zawieszone urządzenie Cuttlefish, uruchom:

cvd resume

Sprawdzanie funkcji zrzutu/przywracania

Działanie funkcji zrzutu/przywracania można sprawdzić, wykonując ten test:

atest SnapshotTest