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.
Migawki możesz wykorzystywać 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 je 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 mieć pewność, że kolejne testy będą przebiegać bez zakłóceń.
Innym przykładem zastosowania zrzutów jest testowanie działania aplikacji. Podczas testowania działania aplikacji na podstawie zestawu działań możesz zrobić zrzut między działaniami w trakcie działania aplikacji, aby móc przywrócić ten zrzut bez konieczności ponownego uruchamiania od początku. Jeśli np. uruchomienie gry trwa długo, możesz zrobić migawkę po otwarciu 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 ono być 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 zostać 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_swiftshader
Utwórz podsumowanie danych, uruchamiając polecenie
cvd snapshot_take
z 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 wykonaniem zrzutu i wznawia jego działanie po wykonaniu 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ę 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=ID
Zawieszanie urządzenia Cuttlefish
Możesz wstrzymać urządzenie Cuttlefish bez tworzenia zrzutu (nie jest używane miejsce na dysku do zapisywania stanu). Aby zawiesić urządzenie Cuttlefish, uruchom to polecenie:
cvd suspend
Wznawianie działania urządzenia Cuttlefish
Aby wznowić działanie zawieszonego urządzenia Cuttlefish, wpisz:
cvd resume
Sprawdzanie poprawności funkcji zrzutu i przywracania
Funkcję Snapshot/Restore można sprawdzić, wykonując ten test:
atest SnapshotTest