스냅샷은 OS 설정과 애플리케이션 상태, 사용자 데이터를 포함하는 Android Virtual Device(AVD)의 저장된 이미지로, 스냅샷이 저장된 시점의 전체 기기 상태를 보존합니다. 스냅샷을 로드하여 저장된 시스템 상태로 돌아갈 수 있으므로 가상 기기에서 운영체제 및 애플리케이션이 다시 시작되기를 기다리지 않아도 되고, 테스트를 재개하려는 상태로 앱을 다시 되돌리지 않아도 됩니다. 스냅샷을 로드하여 가상 기기를 시작하는 것은 실제 기기를 전원이 꺼진 상태에서 부팅하는 것이 아니라 절전 모드 상태에서 깨우는 것과 매우 유사합니다.
각 AVD에는 하나의 Quick Boot 스냅샷과 여러 일반 스냅샷이 있습니다.
스냅샷을 활용하는 가장 간단한 방법은 Quick Boot 스냅샷을 사용하는 것입니다. 기본적으로 각 AVD는 종료 시 Quick Boot 스냅샷을 자동으로 저장하고 시작 시 Quick Boot 스냅샷에서 로드하도록 설정됩니다.
AVD는 처음 시작되면 기기 전원을 켜는 것처럼 콜드 부팅을 실행해야 합니다. Quick Boot이 사용 설정되면 이후의 모든 시작이 지정된 스냅샷에서 로드되고 시스템은 스냅샷에 저장된 상태로 복원됩니다.
AVD는 Quick Boot 스냅샷을 사용하여 콜드 부팅보다 최대 10배 빠르게 부팅할 수 있습니다. 따라서 가능한 경우 AVD에서 초기 부팅 후에 Quick Boot를 사용하는 것이 좋습니다.
스냅샷은 시스템 이미지, AVD 구성, 함께 저장된 에뮬레이터 기능에 유효합니다. 이러한 영역을 변경하면 영향을 받는 AVD의 모든 스냅샷이 무효가 됩니다. Android Emulator나 시스템 이미지, AVD 설정을 업데이트하면 AVD의 저장된 상태가 재설정되어 다음에 AVD를 시작할 때 콜드 부팅을 실행해야 합니다.
스냅샷의 저장, 로드, 관리를 위한 대부분의 컨트롤은 Snapshots 창의 Snapshots 및 Settings 탭에 있습니다. Android 스튜디오의 도구 창에서 에뮬레이터를 실행 중이면 Snapshots 창 버튼이 에뮬레이터 툴바에 표시됩니다. Android 스튜디오 외부의 독립형 창에서 에뮬레이터를 실행하는 경우 Snapshots 창이 Extended controls 창에 표시됩니다.
명령줄에서 에뮬레이터를 시작할 때 Quick Boot 옵션을 제어할 수도 있습니다.
Quick Boot 스냅샷 저장
닫을 때 에뮬레이터에서 스냅샷을 자동으로 저장할지 지정할 수 있습니다. 이 동작을 제어하려면 다음 단계에 따라 진행하세요.
- 스냅샷 설정을 엽니다. 에뮬레이터가 Android 스튜디오에 삽입되어 있으면 툴바에서 Snapshots를 클릭합니다. 에뮬레이터가 별도의 창에 있으면 Extended controls 창을 엽니다.
- 컨트롤의 Snapshots 카테고리에서 Settings 탭으로 이동합니다.
Auto-save current state to Quickboot 메뉴를 사용하여 다음 옵션 중 하나를 선택합니다.
Yes: 에뮬레이터를 닫을 때 항상 AVD 스냅샷을 저장합니다. 이는 기본값입니다.
No: 에뮬레이터를 닫을 때 AVD 스냅샷을 저장하지 않습니다.
선택사항은 열려 있는 AVD에만 적용됩니다. ADB가 오프라인일 때(예: AVD가 여전히 부팅 중일 때)는 스냅샷을 저장할 수 없습니다.
일반 스냅샷 저장
Quick Boot 스냅샷은 각 AVD당 하나만 있을 수 있지만, 일반 스냅샷은 여러 개 있을 수 있습니다.
일반 스냅샷을 저장하려면 Snapshots 창을 열고 오른쪽 하단에서 Take snapshot 버튼을 클릭합니다.
선택한 스냅샷의 이름과 설명을 수정하려면 창 하단에서 수정 버튼을 클릭합니다.
스냅샷 삭제
수동으로 스냅샷을 삭제하려면 Snapshots 창을 열고 스냅샷을 선택한 다음 창 하단에서 삭제 버튼을 클릭합니다.
AVD 설정이나 에뮬레이터 버전이 변경될 때와 같이 스냅샷이 무효하게 될 때 에뮬레이터가 자동으로 스냅샷을 삭제하게 할지를 지정할 수도 있습니다. 기본적으로 에뮬레이터는 무효한 스냅샷을 삭제할지 묻습니다. Snapshots 창의 Settings 탭에 있는 Delete invalid snapshots 메뉴로 이 설정을 변경할 수 있습니다.
스냅샷 로드
언제든지 스냅샷을 로드하려면 에뮬레이터의 Snapshots 창을 열고 Snapshots 카테고리를 선택하고 스냅샷을 선택한 다음 창 하단에서 로드 버튼을 클릭합니다.
Android 스튜디오 3.2 이상의 각 기기 설정에는 Virtual Device Configuration 대화상자의 고급 설정에 Boot option 컨트롤이 포함되어 있습니다. 이 컨트롤을 사용하여 AVD를 시작할 때 로드할 스냅샷을 지정할 수 있습니다.
Quick Boot 사용 중지
AVD가 항상 콜드 부팅을 실행하도록 Quick Boot을 사용 중지하려면 다음 단계를 따르세요.
- Tools > Device Manager를 선택한 후 Edit this AVD 를 클릭합니다.
- Show Advanced Settings를 클릭한 후 Emulated Performance까지 아래로 스크롤합니다.
- Cold boot를 선택합니다.
한 번 콜드 부팅
Quick Boot을 완전히 사용 중지하는 대신 기기 관리도구의 AVD 메뉴에서 Cold Boot를 클릭하여 콜드 부팅할 수 있습니다.
스냅샷 요구사항 및 문제 해결
- 스냅샷은 Android 4.0.4(API 수준 15) 이하에서는 작동하지 않습니다.
- 스냅샷은 Android 8.0(API 수준 26)용 ARM 시스템 이미지에서는 작동하지 않습니다.
- 에뮬레이터가 스냅샷에서 부팅되지 않으면 기기 관리자에서 AVD Cold Boot를 선택하고 버그 신고를 제출하세요.
- 스냅샷은 소프트웨어 렌더링이 사용 설정된 경우 신뢰할 수 없습니다. 스냅샷이 작동하지 않으면 기기 관리도구에서 Edit this AVD 를 클릭한 다음 Graphics를 Hardware 또는 Automatic으로 변경합니다.
- 스냅샷 로드 또는 저장은 메모리를 많이 사용하는 작업입니다. 로드 또는 저장 작업이 시작될 때 RAM 여유 공간이 충분하지 않으면 운영체제에서 RAM 콘텐츠를 하드 디스크로 교환하므로 작업 속도가 상당히 느려질 수 있습니다. 스냅샷 로드 또는 저장이 매우 느리다면 RAM의 여유 공간을 확보하여 작업 속도를 높일 수 있습니다. 작업에 꼭 필요하지 않은 애플리케이션을 닫는 것이 RAM을 확보하는 좋은 방법입니다.