Медленная загрузка на 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.

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

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

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

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

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

 -netspeed full -netdelay none 

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Попытайтесь установить оперативную память эмулятора на 1024.

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

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

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

или

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

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

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

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

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

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

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

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

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

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

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

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

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