как сохранить снимок эмулятора Android? - PullRequest
34 голосов
/ 30 января 2011

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

Ответы [ 6 ]

29 голосов
/ 06 февраля 2011

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

Есть несколько способов получить это. Первый способ - установить нужные параметры в диалоговом окне «Параметры запуска» при запуске эмулятора из Android SDK и AVD Manager (см. Изображение ниже). Опция Wipe user data все еще существует, и это создаст новую систему с нуля. Новые параметры снимка: «Запустить из моментального снимка» (если он был сохранен ранее) или «Сохранить в моментальный снимок», когда эмулятор выключается. Очевидно, вы должны сохранить снимок, прежде чем вы сможете запустить с одного. Файл снимка может быть довольно большим, и это увеличивает время, необходимое для выхода эмулятора при его закрытии. Но оно того стоит. Запуск из моментального снимка происходит очень быстро, по сравнению с полной последовательностью загрузки 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

Я не пробовал снимки из командной строки, так как диалоговое окно Launch Options стало проще. РЕДАКТИРОВАТЬ: еще одна вещь, файл снимка хранится в том же месте, что и ваши файлы AVD.

21 голосов
/ 12 мая 2011

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

$ 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 голосов
/ 30 января 2011

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

2 голосов
/ 30 января 2011

Я не знаю, есть ли возможность восстановить с.

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

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

enter image description here

1 голос
/ 09 сентября 2014

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

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

killall -2 emulator64-x86

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

0 голосов
/ 05 октября 2018

На основании одного из лучших ответов я нашел это рабочее решение:

adb emu avd snapshot save foo

И особенно это очень полезно вместе с этим:

adb emu avd snapshot load bar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...