Android 15 wprowadza sposób robienia zrzutów i przywracania zrzutów wirtualnego urządzenia Cuttlefish. Zrobienie zrzutu urządzenia Cuttlefish umożliwia zapisanie stanu urządzenia w postaci obrazu na dysku. Następnie możesz przywrócić zrzut, aby przywrócić urządzenie Cuttlefish do wcześniej zapisanego stanu.
Zrzutów możesz używać w różnych automatycznych i ręcznych przepływach pracy. Podczas wykonywania procedury, która modyfikuje urządzenie, możesz zrobić jego migawkę, aby mieć pewność, że w razie potrzeby przywrócisz urządzenie do określonego stanu. Na przykład podczas uruchamiania pakietów testów, które modyfikują stan urządzenia i mogą powodować problemy lub niestabilność w kolejnych testach, możesz zrobić migawkę, aby po teście przywrócić urządzenie do zapisanego stanu i zapewnić prawidłowe działanie kolejnych testów.
Inny przykład zastosowania zrzutów to testowanie działania aplikacji. Podczas testowania działania aplikacji na podstawie zestawu działań możesz robić zrzuty między działaniami w trakcie działania aplikacji, aby móc przywrócić stan z danego zrzutu bez konieczności ponownego uruchamiania od początku. Jeśli np. uruchomienie gry trwa długo, możesz zrobić migawkę po wyświetleniu menu głównego, aby przywrócić urządzenie do tego stanu i pominąć czas uruchamiania.
Wykonaj zrzut urządzenia Cuttlefish
Podczas robienia migawki urządzenia Cuttlefish musi być ono zawieszone, aby zapewnić jego stabilny stan. Gdy urządzenie jest zawieszone, wszystkie wirtualne procesory i urządzenia są zatrzymywane, a wszystkie bufory przesyłają swój stan do maszyny wirtualnej. Następnie zrzut zapisuje stan procesora wirtualnego, pamięci i urządzenia na dysku w określonym folderze docelowym.
VirtiosFS nie jest obsługiwany i musi być wyłączony podczas tworzenia migawki. Aby wyłączyć VirtioFS, podczas uruchamiania cvd create lub cvd start przekaż argument --enable_virtiofs=false.
W przypadku migawek obsługiwany jest tylko tryb GPU SwiftShader (guest_swiftshader). Inne przyspieszone tryby graficzne nie są obsługiwane.
Poniżej opisujemy proces uruchamiania urządzenia Cuttlefish i robienia zrzutu.
Uruchom urządzenie, wyłączając VirtioFS. (Możesz wtedy używać urządzenia).
cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshaderZrób migawkę, uruchamiając polecenie
cvd snapshot_takez tymi flagami:--force: jeśli w określonej ścieżce zrzutu istnieje folder, ten flag zapewnia, że istniejący folder zostanie usunięty, a w ścieżce zrzutu zostanie utworzony nowy folder zawierający zrzut.--auto_suspend: zawiesza urządzenie przed zrobieniem zrzutu i wznawia jego działanie po zrobieniu zrzutu.--snapshot_path: określona ścieżka, w której zostanie utworzony nowy folder ze zrzutem.
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
Przywracanie urządzenia Cuttlefish
Podczas przywracania zrzutu urządzenia Cuttlefish instancja Cuttlefish, dla której zrzut został utworzony, musi być zatrzymana. Jeśli instancja jest już zatrzymana, nie musisz nic robić i możesz przywrócić migawkę.
Aby przywrócić zrzut urządzenia Cuttlefish, uruchom urządzenie za pomocą polecenia cvd create
i uwzględnij ścieżkę do zrzutu. Jeśli numer instancji bazowej urządzenia Cuttlefish, na którym wykonano migawkę, różni się od numeru instancji bazowej bieżącej instancji Cuttlefish, przekaż ten numer instancji bazowej za pomocą flagi --base_instance_num.
cvd create --snapshot_path=PATH \
--base_instance_num=IDZawieszanie urządzenia Cuttlefish
Możesz wstrzymać działanie urządzenia Cuttlefish bez tworzenia zrzutu (nie jest używane miejsce na dysku do zapisywania stanu). Aby zawiesić urządzenie Cuttlefish, uruchom to polecenie:
cvd suspendWznawianie działania urządzenia Cuttlefish
Aby wznowić działanie zawieszonego urządzenia Cuttlefish, wpisz:
cvd resumeSprawdzanie poprawności funkcji zrzutu i przywracania
Funkcję migawki/przywracania można sprawdzić, uruchamiając ten test:
atest SnapshotTest