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.
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
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