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

Медленная загрузка на Android-эмулятор

Я искал, но не нашел никаких запросов или ответов для моих конкретных обстоятельств. У меня есть быстрый новый компьютер с большим количеством памяти под управлением 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.

4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

Перейдите в Run → Run Configurations... → Target Tab → Дополнительные параметры командной строки эмулятора. Добавьте туда:

-netspeed full -netdelay none

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

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


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

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

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

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

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

Ответ 7

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

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

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

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

Ответ 8

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

Сначала вам нужно загрузить эмулятор без аргументов 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 лет.

Ответ 9

Просто вслух:

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

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

Ответ 10

У меня такая же проблема, но я убежден, что она имеет какое-то отношение к ОС, потому что я загрузил одно приложение с помощью MacBook Pro и ноутбука Dell, который является более мощным, учитывая спецификацию оборудования, однако время загрузки на Mac значительно ниже.

На этом ноутбуке Dell с Windows, однако, загрузка на реальные Android-устройства - это путь, путь быстрее.

Я думал, что это может быть связано с "Google Driver Driver package", который я еще не установил раньше, но после его установки ничего действительно не изменилось.

Ответ 11

Попробуйте установить RAM вашего эмулятора на 1024.

Ответ 12

Разрабатывая то, о чем говорилось в предыдущем сообщении, я обнаружил, что если я запутаюсь с уже работающим AVD во время фазы загрузки, он закончит MUCH быстрее (5 секунд против 60 секунд), и я установлен и запущен в доли секунды. Это с 4.0.3 AVD. Еще не пробовали других.

Ответ 13

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

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

или

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

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

Ответ 14

Глупый вопрос - вы пробовали его на нескольких AVD? Возможно, ваш AVD каким-то образом испорчен.

Ответ 15

Взаимодействие с эмулятором, как вы можете, при загрузке apk на эмуляторе, если вы нажимаете случайные кнопки эмулятора при загрузке, он будет загружаться раньше, прежде чем он загрузит 5-6 минут, но теперь это займет всего 15 - 20 сек.

Ответ 16

Я тоже это видел. Вот что помогло, если бы вы использовали тот же AVD. Протрите данные пользователя на AVD. После этого он снова загрузит приложение быстрее, через пару секунд.

Ответ 17

В терминале/консоли я оболочка в AVD с adb -e shell затем перейдите в каталог tmp, где apk загружается cd /data/local/tmp, а затем ls -l, чтобы увидеть текущий размер файла. Я обнаружил, что если я сижу там и держу стрелку вверх, то введите, чтобы быстро повторить ls -l скорость загрузки. Вы можете следить за прогрессом по мере увеличения размера файла.

Вероятно, это похоже на эффект щелчка вокруг упомянутых других AVD.

Я нахожусь на Mac. Не уверен, что это то же самое в Windows или Linux.

Ответ 18

Это может работать с окнами,

запустите диспетчер задач → вкладка процессов → найдите emulator.exe,

щелкните правой кнопкой мыши и установите приоритет на высокий

Не забудьте установить его в нормальное состояние после выполнения вашей работы.

также закрытие нежелательных приложений, для которых требуется большая память, например, хром и firefox, могут быть закрыты, когда это не нужно.