Недавно было выпущено обновление инструментов разработки Android, позволяющее сохранять и восстанавливать снимки эмулятора. Кто-нибудь знает, как использовать эту функцию? Это значительно сократило бы время загрузки эмулятора! Но я не могу найти способ сказать эмулятору сделать это. Спасибо.
Как вы сохраняете моментальный снимок эмулятора Android?
Ответ 1
Honeycomb представил эту функцию, и это довольно круто! Это похоже на функцию спящего режима на ноутбуке. Вы сохраняете состояние эмулятора в большом файле и позже восстанавливаете его состояние из файла.
Есть несколько способов получить это. Первый способ - установить нужные параметры в диалоговом окне "Параметры запуска" при запуске эмулятора из Android SDK и AVD Manager (см. Рисунок ниже). Опция "Очистить пользовательские данные" все еще существует раньше, и это создаст новую систему с нуля. Новые параметры моментального снимка: Запуск из моментального снимка (если он был сохранен ранее) или Сохранить в моментальном снимке, когда эмулятор выключится. Очевидно, вам нужно сохранить снимок, прежде чем вы сможете начать с него. Файл моментального снимка может быть довольно большим, и это добавляет, как долго требуется, чтобы эмулятор вышел, когда вы его закрыли. Но это того стоит. Запуск из моментального снимка очень быстрый, по сравнению с всей загрузочной последовательностью 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
Я не пробовал моментальные снимки из командной строки, так как упрощен диалог "Параметры запуска". 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
.
Нажав кнопку, окруженную красным цветом, вы можете сохранить копию текущего моментального снимка эмулятора
Ответ 5
Для пользователей оболочки, если вы используете эмулятор --no-window
: похоже, используя kill -2
, чтобы сигнализировать, что процесс эмулятора сохранит снимок загрузки по умолчанию, если вы создали эмулятор с опцией --snapshot
.
Сделайте это:
killall -2 emulator64-x86
В следующий раз, когда вы загрузите этот эмулятор, запуск с помощью чего-либо, кроме параметра -no-snapshot-load
, будет восстановлен из этого моментального снимка.