首页 > 解决方案 > Android Emulator 快照标志不起作用

问题描述

Android 模拟器快照标志未按预期工作。我创建了一个名为 Mydevice 的新 avd

tools/bin/avdmanager create avd --force --name Mydevice --abi google_apis/x86 --package 'system-images;android-29;google_apis;x86' --device "Nexus 6P" &

现在我运行这个 avd 使用

sudo emulator/emulator -avd Mydevice  -no-window -port 5554

模拟器成功启动后,我使用

adb -s emulator-5554 emu avd snapshot save Snap1

成功创建快照。

现在我停止我正在运行的模拟器使用

adb -s emulator-5554 emu kill

现在我再次使用 -read-only 标志运行模拟器并使用保存的快照

sudo emulator/emulator -avd Mydevice -read-only -no-window -port 5554 -snapshot ~/.android/avd/Mydevice.avd/snapshots/Snap1

但似乎 -snapshot 被忽略了,因为模拟器仍然需要与之前相同的时间来启动。

我也尝试删除只读标志,但这没有帮助。

标签: androidandroid-studioandroid-emulatoravdandroid-snapshot

解决方案


to 的参数-snapshot是快照标签名称,而不是路径。

首先,列出这样的快照:

emulator/emulator -avd mydevice -snapshot-list

这将产生这样的输出(到目前为止,我还没有弄清楚如何在不实际启动模拟器的情况下列出快照,但现在只需在运行此命令后关闭模拟器):

ID        TAG                 VM SIZE                DATE       VM CLOCK
--        snap_2020-12-03_13-31-29    90M 2020-12-03 13:31:29   01:11:57.073
--        default_boot            68M 2020-12-03 14:15:33   00:02:08.928

然后,使用“TAG”列中的值之一启动模拟器,例如:

emulator/emulator -avd mydevice -snapshot snap_2020-12-03_13-31-29

对于 Android Studio,AVD 管理器中设备的“高级设置”也有一个下拉菜单,用于选择启动设备的快照。

附带说明一下,我发现从快照启动仿真器映像可以着提高其性能,至少在我的 Linux 机器上是这样。使用快照标志,模拟器的磁盘写入是正常的——没有它,出于某种原因,模拟器基本上会不断地写入磁盘,从而减慢一切。老实说,我不知道为什么会这样。


推荐阅读