Медленная загрузка на работающий эмулятор Android - PullRequest
42 голосов
/ 29 сентября 2011

Я искал, но не нашел ни одного запроса или ответа по моим конкретным обстоятельствам. У меня быстрый новый компьютер с большим объемом памяти под управлением Windows 7. Я использую последнюю версию Eclipse и Android SDK.

Когда я запускаю приложение, эмулятору требуется около 45 секунд для запуска (невероятно быстро для эмулятора!) От запуска запуска до запуска моего приложения.

Если я затем изменю приложение и перезапущу его на все еще работающем эмуляторе, время увеличивается до 70+ секунд! В отличие от всех других жалоб, которые есть у людей, в моем случае перезапуск эмулятора происходит быстрее, чем использование существующего экземпляра. Мне это не нравится.

Вот времена:

2011-09-29 13:07:13 - hello Uploading hello.apk onto device 'emulator-5554'
2011-09-29 13:07:18 - hello Installing hello.apk...
2011-09-29 13:07:37 - hello Success!

при повторном запуске после изменения приложения для его перезагрузки:

2011-09-29 13:08:18 - hello Uploading hello.apk onto device 'emulator-5554'
2011-09-29 13:09:16 - hello Installing hello.apk...
2011-09-29 13:09:24 - hello Success!

Как видите, загрузка в эмулятор занимает всего 5 секунд, когда эмулятор запускается заново. Это занимает почти минуту с запущенным эмулятором! Это является причиной увеличения времени повторного запуска. Это не меняется даже при удалении приложения из эмулятора перед его повторным запуском.

Любые идеи о том, что я мог бы попытаться решить это? Кажется, это какая-то проблема со связью, возможно, с adb.

Ответы [ 18 ]

30 голосов
/ 03 марта 2012

Как уже сообщали другие, просто щелкнув по эмулятору во время загрузки, резко повышается скорость загрузки. У меня была та же проблема, и Гуглил для ответа, и попытка этого трюка помогла мне. У меня 2.3.3 AVD.

8 голосов
/ 24 ноября 2011

Мое новое открытие - небольшой взлом, как вы можете сделать загрузку быстрее . Я понял, что случаи, когда загрузка была быстрее, были вызваны моим взаимодействием. Поэтому, когда я загружаю новое приложение без активной работы с эмулятором, это происходит медленно. Но когда я работаю с ним (тестирую приложение, завершаю работу, открываю список приложений и т. Д.), Загрузка происходит НАМНОГО быстрее - в моем случае ок. 15 секунд вместо почти 2 минут.

Так что я думаю, что проблема как-то в настройках производительности эмулятора. Когда я ничего не делаю, он думает, что большая производительность не нужна, эмулятор переключается в какое-то экономическое состояние, поэтому моя загрузка идет медленно.

6 голосов
/ 27 ноября 2014

Лучшее решение:

Перейдите в Выполнить -> Выполнить конфигурации ... -> Вкладка «Цель» -> Дополнительные параметры командной строки эмулятора. Добавьте туда:

-netspeed full -netdelay none

Теперь закройте эмулятор и запустите его снова.

После этого время загрузки увеличилось с 2 минут до 8 секунд.


Edit: Я также обнаружил, что выход из Skype делает загрузку моего эмулятора намного быстрее.

5 голосов
/ 04 июля 2012

Самый быстрый эмулятор, который вы можете получить, это машина VMWare с Android.

При разработке игры Elastic World я страдал от той же проблемы.После нескольких минут ожидания запуска эмулятора игра работала со скоростью не более 20 FPS.Даже на бюджетных устройствах Android я мог легко получить 60 FPS.Скорость загрузки была очень медленной.

Поэтому я перешел на компьютер под управлением VMWare Android, следуя инструкциям с этого сайта: http://www.android -x86.org / documents / installhowto /

Тот же игровой цикл теперь работает со скоростью 250 FPS.(на этой скорости невозможно играть, и у меня игра ограничена до 60 FPS, но, преодолев это ограничение, она дает 250 FPS)

Когда Eclipse заканчивает процесс сборки, мне просто нужно подождать от 1 до 5 секундигра появится на виртуальной машине.И у меня работает старый Core2Duo

5 голосов
/ 29 сентября 2011

У меня та же проблема, я разрабатываю приложение для Android размером 4,6 МБ, и мне требуется, возможно, 50-60 секунд, чтобы загрузить его на эмулятор и запустить. Я не думаю, что это проблемас общением.JVM работает медленно, поэтому вам нужно время, чтобы загрузить свой apk и запустить его. Я не думаю, что вы можете с этим что-то сделать, кроме как начать тестировать свое приложение на устройстве.

5 голосов
/ 22 января 2012

Играйте с эмулятором при загрузке приложения.Я полностью согласен с Типи.Это уменьшило мое время ожидания с 4 минут до 30 секунд.

4 голосов
/ 27 ноября 2015

Я знаю, что это старая тема, но я думаю, что у меня действительно есть решение этой проблемы.

Сначала вам нужно загрузить эмулятор без аргументов netspeed, как показано ниже:

emulator -avd <name>

После запуска войдите в эмулятор, используя telnet. Вы можете получить порт в верхней части окна эмулятора или запустив устройства adb и посмотрев серийный номер эмулятора, который находится в форме порта эмулятора (обычно это 5554 в большинстве случаев)

telnet localhost 5554

После того, как вы вошли в систему с помощью telnet, вам нужно выполнить следующую команду, чтобы заставить эмулятор использовать очень высокую скорость сети

network speed 500000

Затем вы можете проверить этот параметр в telnet, используя следующую команду

network status

Который должен вернуть

Current network status:
  download speed:   500000000 bits/s (61035.2 KB/s)
  upload speed:     500000000 bits/s (61035.2 KB/s)

Если вы сейчас попытаетесь установить APK, вы обнаружите, что производительность значительно возросла. В моем случае это было от 260 до 18 лет.

4 голосов
/ 13 марта 2014

Это не проблема с AVD, она затмевает проблему, и я не знаю, есть ли способ изменить ее в рамках того, что мы могли бы назвать джунглями параметров.

Для краткостиВы можете самостоятельно запустить эмулятор в консольной команде, используя следующую команду:

emulator.exe -avd MyAVDName -netspeed full -netdelay none

Хорошие параметры, почему Eclipse не использует его?Некоторый Eclipse-кодер должен сделать его по умолчанию.Другое решение - перейти на IntelliJ IDEA.Он великолепно заменит вашу старую неуклюжую IDE на новую и лучшую.

2 голосов
/ 22 ноября 2011

Просто подумав вслух:

Я не знаю этого точно, но мне интересно, если это замедление из-за того, что приложения Android имеют свои собственные экземпляры виртуальной машины Dalvik и работают какотдельный пользователь и процесс.Когда вы «думаете», что закрыли свое приложение, Android может поддерживать процесс (определенно виртуальную машину) в случае, если вы перезапустите приложение.Это похоже на поведение предварительной выборки в Windows.

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

1 голос
/ 08 июня 2015

Альтернативные способы:

Настройка FTP-сервера на вашем компьютере для размещения apk-файлов, теперь вы можете загружать apk-файлы с помощью веб-браузера эмулятора Android и устанавливать приложение без использования adb.

или

Установите клиент samba на эмуляторе Android и поделитесь apk-файлами на вашем компьютере, затем скопируйте apk-файлы в эмулятор и установите приложение без помощи adb.

Все вышеперечисленные способы быстрее, чем установка adb.

...