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를 사용 중지한 상태에서 기기를 실행합니다. 그런 다음 기기를 사용할 수 있습니다.
Cuttlefish 기기 스냅샷을 복원할 때는 스냅샷이 촬영된 Cuttlefish 인스턴스를 중지해야 합니다. 인스턴스가 이미 중지된 경우 추가 조치가 필요하지 않으며 스냅샷을 복원할 수 있습니다.
Cuttlefish 기기의 스냅샷을 복원하려면 cvd create로 기기를 실행하고 스냅샷 경로를 포함합니다. 스냅샷이 찍힌 Cuttlefish 기기의 기본 인스턴스 번호가 현재 Cuttlefish 인스턴스의 기본 인스턴스 번호와 다른 경우 --base_instance_num 플래그를 사용하여 해당 기본 인스턴스 번호를 전달합니다.
스냅샷을 찍지 않고도 Cuttlefish 기기를 일시중지할 수 있습니다 (상태를 저장하는 데 디스크 공간이 사용되지 않음). Cuttlefish 기기를 일시중지하려면 다음을 실행합니다.
cvdsuspend
Cuttlefish 기기 재개
정지된 Cuttlefish 기기를 재개하려면 다음을 실행합니다.
cvdresume
스냅샷/복원 기능 검증
스냅샷/복원 기능은 다음 테스트를 실행하여 검증할 수 있습니다.
atestSnapshotTest
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Cuttlefish: Snapshot and restore\n\nAndroid 15 introduces how to take a snapshot and\nrestore a snapshot of a Cuttlefish virtual device. Taking a snapshot of a\nCuttlefish device lets you save the state of the device in an image on disk.\nYou can then restore the snapshot to bring up a Cuttlefish device to the\npreviously saved state.\n\nYou can use snapshots in various automated or manual workflows. When\nperforming a procedure that modifies the device, you can take a snapshot of\nthe device to ensure you can restore the device back to a specified state.\nFor example, when running test suites that modify the state of the device\nand can potentially cause issues or instabilities in the following tests,\nyou can take a snapshot so you can restore the device to a saved state after\na test, ensuring that subsequent tests run cleanly.\n\nAnother example workflow where snapshots are useful is when testing the\nbehavior of an app. When testing the behavior of an app based on a set of\nactions, you can take a snapshot in between actions as the app is running\nto let you restore to that snapshot without having to restart from the\nbeginning. For example, if launching a game has a long bringup time, you\ncan take a snapshot after reaching the main menu so you can restore the\ndevice to that state, skipping the bringup time.\n\nTake snapshot of a Cuttlefish device\n------------------------------------\n\n| **Note:** Snapshots are only supported on x86_64 platforms.\n\nWhen taking a snapshot of a device, the Cuttlefish device must be suspended\nto make sure the Cuttlefish device is in a stable state. When the device\nis suspended, all vCPUs and devices are stopped, and all buffers push\ntheir state to the VM. The snapshot then saves the vCPU state, memory,\nand device state to disk at a specified destination folder.\n\nVirtiosFS isn't supported and must be disabled when taking a snapshot. To\ndisable VirtioFS, pass the argument\n`--enable_virtiofs=false` when running `cvd create` or `cvd start`.\n\nOnly the SwiftShader (`guest_swiftshader`) GPU mode is supported for\nsnapshots. Other [accelerated graphics modes](/docs/devices/cuttlefish/gpu)\naren't supported.\n\nThe following steps describes the process of launching a Cuttlefish device\nand taking a snapshot.\n\n1. Launch a device, while disabling VirtioFS. (You can then use the device.)\n\n cvd create --enable_virtiofs=false --gpu_mode=guest_swiftshader\n\n2. Take a snapshot by running `cvd snapshot_take` with the following flags:\n\n - `--force`: If a folder exists at the specified snapshot path, this\n flag ensures that the existing folder is deleted, and a new folder\n is created at the snapshot path containing the snapshot\n\n - `--auto_suspend`: Suspends the device before the snapshot is taken and\n resumes the device after the snapshot is taken.\n\n - `--snapshot_path`: The specified path where a new folder is created\n with the snapshot.\n\n cvd snapshot_take --force --auto_suspend \\\n --snapshot_path=\u003cvar translate=\"no\"\u003ePATH\u003c/var\u003e\n\nRestore a Cuttlefish device\n---------------------------\n\nWhen restoring a Cuttlefish device snapshot, the Cuttlefish instance for\nwhich the snapshot was taken must be stopped. If the instance is already\nstopped, no further action is required and the snapshot can be restored.\n\nTo restore a snapshot of a Cuttlefish device, launch a device with `cvd create`\nand include the snapshot path. If the base instance number of the Cuttlefish\ndevice on which the snapshot was taken is different from the base instance\nnumber of the current Cuttlefish instance, pass that base instance\nnumber using the `--base_instance_num` flag. \n\n cvd create --snapshot_path=\u003cvar translate=\"no\"\u003ePATH\u003c/var\u003e \\\n --base_instance_num=\u003cvar translate=\"no\"\u003eID\u003c/var\u003e\n\nSuspend a Cuttlefish device\n---------------------------\n\nYou can suspend a Cuttlefish device without taking a snapshot (no disk space\nis used for saving the state). To suspend a Cuttlefish device, run: \n\n cvd suspend\n\nResume a Cuttlefish device\n--------------------------\n\nTo resume a suspended Cuttlefish device, run: \n\n cvd resume\n\nValidate the Snapshot/Restore feature\n-------------------------------------\n\nThe Snapshot/Restore feature can be validated by running the following test: \n\n atest SnapshotTest"]]