刚刚发布了Android开发工具的更新,使您可以从模拟器快照进行保存和还原。有谁知道如何使用此功能?这将大大减少仿真器的加载时间!但我找不到告诉模拟器这样做的方法。感谢。
答案 0 :(得分:29)
Honeycomb推出了这个功能,非常酷!这就像笔记本电脑上的休眠功能。您将模拟器的状态保存到一个大文件中,稍后从文件中恢复其状态。
有两种方法可以获得它。第一种方法是在从Android SDK和AVD Manager启动模拟器时在“启动选项”对话框中设置所需的选项(请参见下图)。 Wipe用户数据选项仍然存在,它将从头开始创建一个新系统。新快照选项是从快照启动(如果之前已保存过),或者在仿真器关闭时保存到快照。显然,您必须先保存快照,然后才能从一个快照启动。快照文件可能会变得相当大,这会增加模拟器关闭时退出所需的时间。但这是值得的。与通过Android的整个启动序列相比,从快照启动非常快。您可以执行的一个技巧是保存到快照一次,然后从快照启动但在第一次之后不保存到快照。你的初创公司会很快,你的出口会很快。无论你在每个模拟器会话中做什么,每次都会从相同的快照状态开始。
使用快照的另一种方法是从模拟器的命令行。文档目前没有提到这些选项,但是通过在模拟器上调用帮助选项,我们发现了这些:
-snapstorage <file> file that contains all state snapshots (default <datadir>/snapshots.img)
-no-snapstorage do not mount a snapshot storage file (this disables all snapshot functionality)
-snapshot <name> name of snapshot within storage file for auto-start and auto-save (default 'default-boot')
-no-snapshot perform a full boot and do not do not auto-save, but qemu vmload and vmsave operate on snapstorage
-no-snapshot-save do not auto-save to snapshot on exit: abandon changed state
-no-snapshot-load do not auto-start from snapshot: perform a full boot
-snapshot-list show a list of available snapshots
-no-snapshot-update-time do not do try to correct snapshot time on restore
我没有尝试从命令行创建快照,因为“启动选项”对话框更容易。编辑:还有一件事,快照文件存储在与AVD文件相同的位置。
答案 1 :(得分:21)
显然你也可以通过控制台界面来实现:
$ telnet localhost 5554
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK
avd snapshot save foo
答案 2 :(得分:3)
右。假设您在创建avd时选中了“启用快照”,只需关闭模拟器即可保存其状态,并在下次运行时恢复,无论是来自管理器还是来自eclipse。
答案 3 :(得分:2)
我不知道有没有可供恢复的选项。
但您可以保存模拟器的当前快照
将您的观点视角从Java
更改为DDMS
。
通过单击红色环绕的按钮,您可以保存模拟器当前快照的副本
答案 4 :(得分:1)
对于shell用户,如果您正在运行--no-window
模拟器:看起来使用kill -2
表示模拟器进程将保存默认启动快照,假设您创建了模拟器--snapshot
选项。
这样做:
killall -2 emulator64-x86
下次启动该模拟器时,使用除-no-snapshot-load
选项之外的任何内容启动将从该快照恢复。
答案 5 :(得分:0)
根据最重要的答案之一,我找到了这个可行的解决方案:
adb emu avd snapshot save foo
尤其是和它一起使用非常有用:
adb emu avd snapshot load bar