Android 15에서는 Cuttlefish 가상 기기의 스냅샷을 가져오고 스냅샷을 복원하는 방법을 도입합니다. Cuttlefish 기기의 스냅샷을 사용하면 디스크의 이미지에 기기 상태를 저장할 수 있습니다. 그런 다음 스냅샷을 복원하여 Cuttlefish 기기를 이전에 저장된 상태로 가져올 수 있습니다.
다양한 자동 또는 수동 워크플로에서 스냅샷을 사용할 수 있습니다. 기기를 수정하는 절차를 실행할 때 기기의 스냅샷을 찍어 기기를 지정된 상태로 복원할 수 있습니다. 예를 들어 기기의 상태를 수정하고 후속 테스트에서 문제나 불안정을 일으킬 수 있는 테스트 도구 모음을 실행할 때 테스트 후 저장된 상태로 기기를 복원할 수 있도록 스냅샷을 찍어 후속 테스트가 깔끔하게 실행되도록 할 수 있습니다.
스냅샷이 유용한 또 다른 워크플로는 앱의 동작을 테스트하는 경우입니다. 일련의 작업을 기반으로 앱의 동작을 테스트할 때 앱이 실행되는 동안 작업 사이에 스냅샷을 찍으면 처음부터 다시 시작하지 않고도 해당 스냅샷으로 복원할 수 있습니다. 예를 들어 게임을 실행하는 데 긴 초기화 시간이 걸리는 경우 기본 메뉴에 도달한 후 스냅샷을 찍어 초기화 시간을 건너뛰고 기기를 해당 상태로 복원할 수 있습니다.
Cuttlefish 기기의 스냅샷 가져오기
기기의 스냅샷을 찍을 때 Cuttlefish 기기가 안정적인 상태인지 확인하기 위해 Cuttlefish 기기를 일시 중지해야 합니다. 기기가 정지되면 모든 vCPU와 기기가 중지되고 모든 버퍼가 상태를 VM으로 푸시합니다. 그러면 스냅샷이 지정된 대상 폴더에 vCPU 상태, 메모리, 기기 상태를 디스크에 저장합니다.
VirtiosFS는 지원되지 않으며 스냅샷을 생성할 때 사용 중지해야 합니다. VirtioFS를 사용 중지하려면 cvd create
또는 cvd start
를 실행할 때 --enable_virtiofs=false
인수를 전달하세요.
스냅샷에는 SwiftShader (guest_swiftshader
) GPU 모드만 지원됩니다. 다른 가속화된 그래픽 모드는 지원되지 않습니다.
다음 단계에서는 Cuttlefish 기기를 실행하고 스냅샷을 만드는 프로세스를 설명합니다.
VirtioFS를 사용 중지한 상태로 기기를 실행합니다. (그러면 기기를 사용할 수 있습니다.)
cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshader
다음 플래그와 함께
cvd snapshot_take
를 실행하여 스냅샷을 만듭니다.--force
: 지정된 스냅샷 경로에 폴더가 있는 경우 이 플래그는 기존 폴더가 삭제되고 스냅샷이 포함된 새 폴더가 스냅샷 경로에 생성되도록 합니다.--auto_suspend
: 스냅샷을 찍기 전에 기기를 일시 중지하고 스냅샷을 찍은 후 기기를 다시 시작합니다.--snapshot_path
: 스냅샷으로 새 폴더가 생성되는 지정된 경로입니다.
cvd snapshot_take --force --auto_suspend \ --snapshot_path=PATH
Cuttlefish 기기 복원
Cuttlefish 기기 스냅샷을 복원할 때는 스냅샷이 촬영된 Cuttlefish 인스턴스를 중지해야 합니다. 인스턴스가 이미 중지된 경우 추가 조치가 필요하지 않으며 스냅샷을 복원할 수 있습니다.
Cuttlefish 기기의 스냅샷을 복원하려면 cvd create
로 기기를 실행하고 스냅샷 경로를 포함하세요. 스냅샷이 생성된 Cuttlefish 기기의 기본 인스턴스 번호가 현재 Cuttlefish 인스턴스의 기본 인스턴스 번호와 다른 경우 --base_instance_num
플래그를 사용하여 해당 기본 인스턴스 번호를 전달합니다.
cvd create --snapshot_path=PATH \
--base_instance_num=ID
Cuttlefish 기기 정지
스냅샷을 찍지 않고 Cuttlefish 기기를 일시중지할 수 있습니다 (상태를 저장하는 데 사용되는 디스크 공간이 없음). Cuttlefish 기기를 일시 중지하려면 다음을 실행합니다.
cvd suspend
Cuttlefish 기기 재개
정지된 Cuttlefish 기기를 재개하려면 다음을 실행합니다.
cvd resume
스냅샷/복원 기능 검증
스냅샷/복원 기능은 다음 테스트를 실행하여 검증할 수 있습니다.
atest SnapshotTest