【问题标题】:how do you save android emulator snapshot?你如何保存android模拟器快照?
【发布时间】:2011-06-18 01:48:49
【问题描述】:

Android 开发工具的更新刚刚发布,您可以使用模拟器快照保存和恢复。有谁知道如何使用这个功能?这将大大减少模拟器的加载时间!但我找不到告诉模拟器这样做的方法。谢谢。

【问题讨论】:

    标签: android android-emulator


    【解决方案1】:

    根据我找到的最佳答案之一,我找到了这个可行的解决方案:

    adb emu avd snapshot save foo
    

    尤其是它和这个一起非常有用:

    adb emu avd snapshot load bar
    

    【讨论】:

    • 酷,正是我需要的。谢谢!
    【解决方案2】:

    对于 shell 用户,如果您正在运行 --no-window 模拟器:假设您使用 --snapshot 选项创建了模拟器,看起来使用 kill -2 来表示模拟器进程将保存默认启动快照。

    这样做:

    killall -2 emulator64-x86
    

    下次启动该模拟器时,使用除 -no-snapshot-load 选项之外的任何内容启动都会从该快照恢复。

    【讨论】:

    • killall 可能是一种霰弹枪方法,但这适用于 x86_64 模拟器。
    • Wikipedia 表示信号 2 是 SIGINT。您也可以通过输入fg 然后按 Ctrl+C 来发送 SIGINT。
    【解决方案3】:

    没错。假设您在创建 avd 时选中了“启用快照”,只需关闭模拟器即可保存其状态并在下次运行时恢复,无论是来自管理器还是来自 Eclipse。

    【讨论】:

      【解决方案4】:

      我不知道是否有任何可用于恢复的选项。

      但您可以保存模拟器的当前快照

      将您的视图视角从 Java 更改为 DDMS 。 通过单击红色圈出的按钮,您可以保存模拟器当前快照的副本

      【讨论】:

      • 感谢 Tanmay 提供的额外信息。您圈出的按钮有助于截取屏幕截图:) 这也很有帮助。我的意思是“保存/恢复”模拟器的“状态”。昨天刚刚推出的一项功能。试试看!
      【解决方案5】:

      显然你也可以通过控制台界面来做:

      $ 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
      

      【讨论】:

      • emulator: Listening for console connections on port: 5554 但得到了Connecting To localhost...Could not open connection to the host, on port 5554: Connect failed
      • 对于像我这样在 2017 年发现这个的人来说,这个功能在工具 v25 中似乎没有。要使用它,需要降级到 v24。
      • 据我所见(2017 年 4 月),Tools v25 中似乎缺少此功能(错误表明该选项不受支持),但在 Tools v26 中快照可能会回来(不确定) .我没有收到任何错误/反馈,所以我不确定它是否存在。以前可以使用任何其他版本的人,请在工具 v26 上进行验证。谢谢。
      • @IrvinH。确实,根据help avd snapshot <command>,它就在那里,但我无法正确保存模拟器状态,因为avd snapshot list 在保存快照后没有显示任何内容。
      【解决方案6】:

      Honeycomb 引入了这个功能,很酷!这就像笔记本电脑上的休眠功能。您将模拟器的状态保存到一个大文件中,稍后从该文件中恢复其状态。

      有几种方法可以获得它。第一种方法是在从 Android SDK 和 AVD 管理器启动模拟器时在“启动选项”对话框中设置所需的选项(见下图)。擦除用户数据选项仍然存在,这将从头开始创建一个新系统。新的快照选项是从快照启动(如果之前已保存),或在模拟器关闭时保存到快照。显然,您必须先保存快照,然后才能从快照启动。快照文件可能会变得相当大,这会增加模拟器在您关闭它时退出所需的时间。但这是值得的。与通过 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 文件存储在同一位置。

      【讨论】:

      • 一个小补充:除非在创建 AVD 时您选择了“启用快照”,否则快照选项将显示为灰色。
      • 确实如此。但是您可以编辑现有的 AVD 以启用快照。因此,无需返回并重新创建所有现有的。
      • +1 用于包含 命令行 版本和存储路径
      猜你喜欢
      • 2016-08-17
      • 2017-12-19
      • 2020-08-28
      • 2021-12-18
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      相关资源
      最近更新 更多