how do you save android emulator snapshot?

后端 未结 6 1409
面向向阳花
面向向阳花 2020-12-04 21:53

An update to the Android development tools was just released enabling you to save-to and restore-from an emulator snapshot. Does anyone know how to use this feature? This wo

相关标签:
6条回答
  • 2020-12-04 22:06

    Honeycomb introduced this feature, and it's pretty cool! It's like the hibernate feature on a laptop. You're saving the state of the emulator into a big file, and restoring its state from the file later.

    There are a couple of ways to get it. The first way is to set your desired options in the Launch Options dialog when Starting the emulator from the Android SDK and AVD Manager (see image below). The Wipe user data option is still there from before, and that will create a new system from scratch. The new snapshot options are to Launch from snapshot (if one has been saved previously), or to Save to snapshot when the emulator shuts down. Obviously you have to save a snapshot before you can launch from one. The snapshot file can get rather large, and this adds to how long it takes for the emulator to exit when you close it. But it's worth it. Launching from a snapshot is very quick, compared to going through the entire boot-up sequence of Android. One of the tricks you could do is Save to snapshot once, then Launch from snapshot but don't Save to snapshot after that first time. Your startups will be fast and your exits will be fast. You'll be starting from the same snapshot state every time though, no matter what you do in each emulator session.

    enter image description here

    The other way to use snapshots is from the command line of emulator. The documentation currently doesn't mention these options, but by invoking the help option on emulator, we find these:

    -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
    

    I haven't tried snapshots from the command line since the Launch Options dialog is easier. EDIT: One more thing, the snapshot file gets stored in the same place as your AVD files.

    0 讨论(0)
  • 2020-12-04 22:15

    I don't know is there any option available to restore from.

    But you can save your emulator's current snapshot

    Change your view perspective from Java to DDMS . By clicking the button encircled in red you can save a copy your emulator's current snapshot

    enter image description here

    0 讨论(0)
  • 2020-12-04 22:18

    Apparently you can also do it via the console interface:

    $ 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
    
    0 讨论(0)
  • 2020-12-04 22:19

    For shell users, if you're running a --no-window emulator: It looks like using kill -2 to signal the emulator process will save the default boot snapshot, assuming you created the emulator with the --snapshot option.

    Do this:

    killall -2 emulator64-x86
    

    The next time you boot that emulator, launching with anything but the -no-snapshot-load option will restore from that snapshot.

    0 讨论(0)
  • 2020-12-04 22:20

    Based on one of the top answers I've found this working solution:

    adb emu avd snapshot save foo
    

    And especially it is very useful together with this one:

    adb emu avd snapshot load bar
    
    0 讨论(0)
  • 2020-12-04 22:23

    Right. Assuming you checked "Enable Snapshot" while creating the avd, simply closing the emulator saves its state and is restored on the next run, be it from the manager or from eclipse.

    0 讨论(0)
提交回复
热议问题