Android 15 wprowadza możliwość robienia zrzutów ekranu i przywracania zrzutów z urządzenia wirtualnego Cuttlefish. Zrobienie zrzutu ekranu urządzenia Cuttlefish pozwala zapisać stan 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 ekranu można używać 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 np. uruchamianie gry zajmuje dużo czasu, możesz zrobić zrzut ekranu po otwarciu menu głównego, aby przywrócić urządzenie do tego stanu, pomijając czas uruchamiania.
Wykonywanie zrzutu ekranu urządzenia Cuttlefish
Podczas robienia zrzutu ekranu urządzenia Cuttlefish należy zawiesić urządzenie, aby zapewnić jego stabilność. 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 zapisuje stan vCPU, pamięci i urządzenia na dysku w określonym folderze docelowym.
Wirtualny system plików nie jest obsługiwany i musi być wyłączony podczas wykonywania zrzutu ekranu. Aby wyłączyć VirtioFS, prześlij argument --enable_virtiofs=false
podczas uruchamiania cvd create
lub cvd start
.
W przypadku migawek obsługiwany jest tylko tryb GPU SwiftShader (guest_swiftshader
). Inne tryby przyspieszonej grafiki nie są obsługiwane.
W tych instrukcjach opisano proces uruchamiania urządzenia Cuttlefish i tworzenia zrzutu ekranu.
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
Wykonaj podsumowanie danych, uruchamiając
cvd snapshot_take
z tymi flagami:--force
: jeśli na podanej ścieżce do zrzutu istnieje folder, ten flaga powoduje usunięcie istniejącego folderu i utworzenie nowego folderu na ścieżce do zrzutu zawierającej zrzut.--auto_suspend
: zawiesza urządzenie przed zrobieniem zrzutu ekranu i wznacza je po jego zrobieniu.--snapshot_path
: podana ścieżka, na której tworzony jest nowy folder ze zrzutem.
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
Przywracanie urządzenia Cuttlefish
Podczas przywracania zrzutu ekranu urządzenia Cuttlefish należy zatrzymać instancję Cuttlefish, z której został wykonany zrzut ekranu. Jeśli instancja została już zatrzymana, nie musisz nic robić i możesz przywrócić migawkę.
Aby przywrócić zrzut urządzenia Cuttlefish, uruchom urządzenie z cvd create
i uwzględnij ścieżkę do 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 robienia zrzutu ekranu (nie jest używane żadne miejsce na dysku do zapisywania stanu). Aby zawiesić urządzenie Cuttlefish, uruchom:
cvd suspend
Wznawianie działania urządzenia Cuttlefish
Aby wznowić zawieszone urządzenie Cuttlefish, uruchom:
cvd resume
Sprawdzanie funkcji zrzutu/przywracania
Funkcję migawki/przywracania można zweryfikować, wykonując ten test:
atest SnapshotTest