Подтвердить что ты не робот

Как вы сохраняете моментальный снимок эмулятора Android?

Недавно было выпущено обновление инструментов разработки Android, позволяющее сохранять и восстанавливать снимки эмулятора. Кто-нибудь знает, как использовать эту функцию? Это значительно сократило бы время загрузки эмулятора! Но я не могу найти способ сказать эмулятору сделать это. Спасибо.

4b9b3361

Ответ 1

Honeycomb представил эту функцию, и это довольно круто! Это похоже на функцию спящего режима на ноутбуке. Вы сохраняете состояние эмулятора в большом файле и позже восстанавливаете его состояние из файла.

Есть несколько способов получить это. Первый способ - установить нужные параметры в диалоговом окне "Параметры запуска" при запуске эмулятора из Android SDK и AVD Manager (см. Рисунок ниже). Опция "Очистить пользовательские данные" все еще существует раньше, и это создаст новую систему с нуля. Новые параметры моментального снимка: Запуск из моментального снимка (если он был сохранен ранее) или Сохранить в моментальном снимке, когда эмулятор выключится. Очевидно, вам нужно сохранить снимок, прежде чем вы сможете начать с него. Файл моментального снимка может быть довольно большим, и это добавляет, как долго требуется, чтобы эмулятор вышел, когда вы его закрыли. Но это того стоит. Запуск из моментального снимка очень быстрый, по сравнению с всей загрузочной последовательностью Android. Один из трюков, который вы можете сделать, - это сохранить снимок один раз, а затем запустить с моментального снимка, но не сохранять в моментальном снимке после этого первого раза. Ваши стартапы будут быстрыми, и ваши выходы будут быстрыми. Вы будете начинать с того же состояния моментального снимка каждый раз, хотя, независимо от того, что вы делаете в каждом сеансе эмулятора.

enter image description here

Другой способ использования снимков - из командной строки эмулятора. В документации в настоящее время не упоминаются эти параметры, но, вызывая параметр справки в эмуляторе, мы находим следующее:

-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

Я не пробовал моментальные снимки из командной строки, так как упрощен диалог "Параметры запуска". EDIT: Еще одна вещь: файл моментальных снимков хранится в том же месте, что и ваши AVD файлы.

Ответ 2

Очевидно, вы также можете сделать это через консольный интерфейс:

$ 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

Ответ 3

Right. Предполагая, что вы выбрали "Включить снимок" при создании avd, просто закрытие эмулятора сохраняет его состояние и восстанавливается при следующем запуске, будь то из менеджера или из затмения.

Ответ 4

Я не знаю, есть ли какие-либо опции для восстановления.

Но вы можете сохранить текущий моментальный снимок эмулятора

Измените перспективу просмотра с Java на DDMS. Нажав кнопку, окруженную красным цветом, вы можете сохранить копию текущего моментального снимка эмулятора

enter image description here

Ответ 5

Для пользователей оболочки, если вы используете эмулятор --no-window: похоже, используя kill -2, чтобы сигнализировать, что процесс эмулятора сохранит снимок загрузки по умолчанию, если вы создали эмулятор с опцией --snapshot.

Сделайте это:

killall -2 emulator64-x86

В следующий раз, когда вы загрузите этот эмулятор, запуск с помощью чего-либо, кроме параметра -no-snapshot-load, будет восстановлен из этого моментального снимка.