快照是 Android 虚拟设备 (AVD) 的存储映像,它保留了保存映像时设备的完整状态,包括操作系统设置、应用状态和用户数据。您可以加载快照以恢复到保存的系统状态,这样能让您节省时间,无需等待虚拟设备上的操作系统和应用重启,也能让您节省将应用恢复到所需测试状态的精力。通过加载快照来启动虚拟设备很像从休眠状态唤醒实体设备,而不是从关机状态启动它。
每个 AVD 可以有一个快速启动快照和任意数量的一般快照。
利用快照的最简单方法是使用快速启动快照。默认情况下,每个 AVD 都设置为在退出时自动保存快速启动快照,并在启动时从快速启动快照加载。
AVD 首次启动时,必须执行冷启动,就像设备开机一样。如果启用了快速启动,则系统会通过加载指定的快照来执行所有后续启动,并且系统会恢复到相应快照中保存的状态。
使用快速启动快照,AVD 的启动速度最多可比冷启动快 10 倍。因此,我们建议在 AVD 上首次启动后使用快速启动功能(如果可能)。
快照要在系统映像、AVD 配置以及保存时采用的模拟器功能均保持不变的情况下才有效。如果您在其中任一方面进行更改,受影响的 AVD 的所有快照都会变为无效。Android 模拟器、系统映像或 AVD 设置如有任何更新,都会重置 AVD 的已保存状态,因此在您下次启动 AVD 时,它必须执行冷启动。
用于保存、加载和管理快照的大多数控件都在 Snapshots 窗格的 Snapshots 和 Settings 标签页中。如果您在 Android Studio 的工具窗口中运行模拟器,Snapshots 窗格按钮将位于模拟器工具栏中。如果您是在 Android Studio 之外的独立窗口中运行模拟器,Snapshots 窗格位于 Extended controls 窗口中。
您还可以在从命令行启动模拟器时控制快速启动选项。
保存快速启动快照
您可以指定模拟器是否在关闭时自动保存快照。如需控制此行为,请按以下步骤操作:
- 打开快照设置。如果模拟器已嵌入到 Android Studio 中,请点击工具栏中的 Snapshots。如果模拟器在单独的窗口中,请打开 Extended controls 窗口。
- 在控件的 Snapshots 类别中,前往 Settings 标签页。
在 Auto-save current state to Quickboot 菜单中选择以下某个选项:
Yes:关闭模拟器时始终保存 AVD 快照。这是默认值。
No:关闭模拟器时不保存 AVD 快照。
您的选择仅会应用于打开的 AVD。在 ADB 处于离线状态时(例如,当 AVD 仍在启动时),您无法保存快照。
保存一般快照
虽然每个 AVD 只能有一个快速启动快照,但每个 AVD 可以有多个一般快照。
如需保存一般快照,请打开 Snapshots 窗格,然后点击右下角的 Take snapshot 按钮。
如需修改选定快照的名称和说明,请点击窗格底部的修改按钮 。
删除快照
如需手动删除快照,请打开 Snapshots 窗格,选择快照,然后点击窗格底部的删除按钮 。
您还可以指定是否希望模拟器在快照变为无效时(例如,当 AVD 设置或模拟器版本发生更改时)自动将其删除。默认情况下,模拟器会询问您是否希望删除无效快照。您可以使用 Snapshots 窗格的 Settings 标签页中的 Delete invalid snapshots 菜单更改此设置。
加载快照
如需随时加载快照,请打开模拟器的 Snapshots 窗格,选择 Snapshots 类别,选择一个快照,然后点击窗格底部的加载按钮 。
在 Android Studio 3.2 及更高版本中,每个设备配置都在 Virtual Device Configuration 对话框的高级设置中包含一个 Boot option 控件。您可以使用该控件来指定在启动该 AVD 时要加载哪个快照。
停用快速启动功能
如果您要停用快速启动功能,以便 AVD 始终执行冷启动,请执行以下操作:
- 依次选择 Tools > Device Manager,然后点击 Edit this AVD 图标 。
- 点击 Show Advanced Settings,然后向下滚动到 Emulated Performance。
- 选择 Cold boot。
冷启动一次
您可以通过在设备管理器的 AVD 菜单中点击 Cold Boot,而不是完全停用快速启动功能。
快照要求和问题排查
- 快照不适用于 Android 4.0.4(API 级别 15)或更低版本。
- 快照不适用于 Android 8.0(API 级别 26)的 ARM 系统映像。
- 如果模拟器未能通过快照完成启动,请在设备管理器中为相应 AVD 选择 Cold Boot,然后提交 bug 报告。
- 在启用软件渲染的情况下,快照将不可靠。如果快照不能正常工作,请在设备管理器中点击 Edit this AVD 图标 ,然后将 Graphics 更改为 Hardware 或 Automatic。
- 加载或保存快照的操作会占用大量内存。如果开始执行加载或保存操作时 RAM 可用空间不足,操作系统可能会将 RAM 的内容交换到硬盘,这将大大降低执行操作的速度。如果您发现快照的加载或保存速度很慢,则可以通过释放 RAM 来加快这些操作的速度。关闭不必要的应用是释放 RAM 的好方法。