Запуск эмулятора Android быстрее

Эмулятор Android немного вялый. Для некоторых устройств, таких как Motorola Droid и Nexus One, приложение работает быстрее на самом устройстве, чем на эмуляторе. Это проблема при тестировании игр и визуальных эффектов.

Как заставить эмулятор работать как можно быстрее? Я играл с его параметрами, но не нашел конфигурации, которая пока еще демонстрирует заметное улучшение.

Ответ 1

Официальная веб-страница

~ на 50% быстрее

Окна:

  • Установите "Акселератор эмулятора Intel x86 (HAXM)" = > SDK-Manager/Extras
  • Установите "Образы системы Intel x86 Atom" = > SDK-Manager/Android 2.3.3
  • Перейдите в корневую папку Android SDK и перейдите к extras\intel\Hardware_Accelerated_Execution_Manager. Выполните файл IntelHaxm.exe для установки. (в Android Studio вы можете перейти к: Настройки → Android SDK → SDK Tools → Intel x86 Emulator Accelerator (установщик HAXM))

  • Создайте AVD с процессором Intel Atom x86 CPU/ABI

  • Запустите эмулятор и запустите консоль, в которой запущен HAXM (откройте окно командной строки и выполните команду: sc query intelhaxm)

enter image description here

Также не забудьте установить этот

enter image description here

P.S. во время создания AVD добавьте память эмуляции: Оборудование/Новое/Размер устройства/размер устройства 512 или более

Linux:

  • Установите KVM: откройте GOOGLE, напишите "kvm installation"
  • Создайте AVD с процессором Intel Atom x86 CPU/ABI
  • Выполнить из командной строки: эмулятор -avd avd_name -qemu -m 512 -enable-kvm
  • Или запустите из Eclipse: Run/Run Configurations/Tab "Target" → проверьте Intel x86 AVD и в окне "Дополнительные параметры командной строки эмулятора" добавьте: -qemu -m 512 -enable-kvm (нажмите "Выполнить" )

enter image description here

P.S. Для Fedora, для Ubuntu

OS-X:

  • В Android SDK Manager установите Intel X86 Atom Image Image
  • В Android SDK Manager установите Intel x86 Emulator Accelerator (HAXM)
  • В Finder перейдите в место установки Intel Emulator Accelerator и установите IntelHAXM (откройте dmg и запустите установку). Вы можете найти местоположение, наведя указатель мыши на запись Emulator Accelerator в диспетчере SDK.
  • Создайте или обновите AVD и укажите Intel Atom x86 в качестве процессора. Intel x86 Emulator Accelerator (HAXM) showing Location

P.S: Проверьте этот инструмент, очень удобно даже trial

Ответ 2

UPDATE: теперь, когда изображение Intel x86 доступно, лучший ответ - по zest выше.

Как правильно указала CommonsWare, эмулятор работает медленно, потому что он эмулирует процессор ARM, который требует перевода на коды операций Intel. Эта виртуализация уничтожает процессор.

Чтобы сделать эмулятор быстрее, вы должны дать ему больше CPU. Начните с быстрого процессора или обновления, если сможете.

Затем дайте эмулятору больше вашего процессора:

  • Отключить гиперпоточность. Поскольку эмулятор не использует более одного ядра, гиперпоточность фактически уменьшает количество общего времени процессора, которое получит эмулятор. Отключение HT замедляет приложения, которые используют преимущества нескольких процессоров. Hyperthreading должен быть отключен в вашем BIOS.
  • Сделать эмулятор запущенным на CPU, отличном от CPU 0. Это оказывает гораздо меньшее влияние, чем отключение HT, но это помогает некоторым. В Windows вы можете указать, на каком процессоре будет работать процесс. Многие приложения будут пережевывать CPU 0, и по умолчанию эмулятор запускается на CPU 0. Я изменяю эмулятор для запуска на последнем. Обратите внимание, что в OS X вы не можете установить сродство (см. https://superuser.com/questions/149312/how-to-set-processor-affinity-on-a-mac).

Я вижу где-то около 50% -ного улучшения с этими двумя изменениями на месте.

Чтобы настроить близость процессора к Windows 7:

  • Открыть диспетчер задач
  • Нажмите "Просмотреть все процессы" (для запуска в качестве администратора, иначе вы не сможете настроить близость процессора).
  • Щелкните правой кнопкой мыши на emulator.exe и выберите Set Affinity...
  • В диалоговом окне Set Affinity выберите только последний процессор

Примечание. Когда вы меняете сродство таким образом, оно изменяется только на время жизни процесса. Затем, вы должны сделать это снова.

enter image description here

Ответ 3

Я бы хотел предложить Genymotion закрутить. Он работает в Oracle VirtualBox и будет законно ударять 60 кадров в секунду в умеренной системе.

Вот скринкап из одной из моих мастерских, работающей на модели MacBook Air в нижнем конце 2012 года:

Nexus 7 emulator running at 56.6 fps

Если вы не можете прочитать текст, это эмулятор Nexus 7, работающий со скоростью 56.6 кадров в секунду. Дополнительным (большим!) Бонусом является то, что Google Play и Google Play Services поставляются с виртуальными машинами.

(Источник демонстрационной анимации можно найти здесь.)

Ответ 4

Включить Аппаратное ускорение GPU (в дополнение к Intel HAXM), если вы используете API 15 v3 или более новые и SDK Tools v17+. Графическое ускорение для эмулятора использует ваше компьютерное графическое оборудование для разработки, в частности его графический процессор (GPU), для ускорения рисования экрана. Это дает заметное повышение скорости.

Чтобы включить графическое ускорение по умолчанию на вашем эмуляторе: при создании AVD в разделе "Оборудование" нажмите "Создать", выберите эмуляцию графического процессора и установите значение "Да".

Чтобы включить ускорение только во время выполнения: используйте флаг -gpu при запуске эмулятора следующим образом:

emulator -avd <avd_name> -gpu on

Источник: Google, используя учебник эмулятора.

Ответ 5

Изменить. Хотя использование изображений Intel получает определенную выгоду от производительности, производительность, получаемая с помощью Genymotion, намного выше. См. ответ Павла Ламмерцма.

Предыдущий ответ

С ADT rev 17 эмулятор поддерживает запуск системных изображений x86 в режиме виртуализации в Windows и Mac OS X. Это оказывает заметное влияние на производительность.

ADT rev 17 примечаний: http://android-developers.blogspot.jp/2012/03/updated-sdk-tools-and-adt-revision-17.html

Настройка ускорения виртуальной машины: http://developer.android.com/guide/developing/devices/emulator.html#accel-vm

Ответ 6

Недавно я переключился с ядра 2 @2.5 на 3gb бара на i7 @1.73 с 8-гигабайтным RAM (обе системы запускали Ubuntu 10.10), и эмулятор работает как минимум в два раза быстрее. Бросить больше аппаратного обеспечения на него, безусловно, помогает.

Ответ 8

Я заметил, что эмулятор по умолчанию использует только Core 0, где большинство приложений Windows по умолчанию будет "любым" ядром. Кроме того, если вы поместите его на другое ядро ​​(например, последнее ядро), это может привести к тому, что эмулятор сойдет с ума. Если вы можете, вы можете попробовать разместить свои приложения для использования в тяжелых CPU на других ядрах процессора для повышения скорости.

Аппаратное обеспечение, получите самый быстрый процессор, который вы можете получить, который работает для одноядерных приложений. Более 2 ядер могут не иметь огромной разницы в показателях производительности эмулятора.

Eclipse + эмулятор Android вместе съедает тонну ОЗУ. По крайней мере, я бы рекомендовал 3 гигабайта ОЗУ, потому что я использовал систему с 2 гигабайтами ОЗУ, и она замедлилась, потому что в системе закончилось ОЗУ и начал использовать файл с образцом.

Я считаю, что лучшие процессоры для него, вероятно, будут иметь высокие часы (использовать только часы в качестве меры для процессоров в той же серии btw), хорошо обрабатывать операции без SIMD и иметь механизм повышения турбонаддува. Есть не так много тестов на основе Java, но в целом они ищут тесты приложений, такие как сжатие и офис. Не смотрите на игры или медиа, поскольку они сильно затронуты SIMD. Если вы найдете Java один, еще лучше.

Ответ 9

В этом году Google I/O (2011) Google продемонстрировал более быстрый эмулятор. Проблема заключается не столько в байтовом коде между ARM и x86, а в программном рендеринге, выполняемом QEMU. Они обошли рендеринг QEMU и отправили рендеринг прямо на X-сервер, на который я верю. Они показали автомобильную игру с действительно хорошими характеристиками и fps.

Интересно, когда это будет доступно для разработчиков...

Ответ 10

Недавно Google анонсировал новый эмулятор для Android. Это намного быстрее и лучше старого. Вы можете найти более подробную информацию об этом здесь.

Ответ 11

Я думаю, что это потому, что виртуальная машина clr использует cpu напрямую без перевода кода кода. Это может быть оптимизация для приложения clr или может быть оконным мобильным/оконным телефоном 7, запущенным на сервере INTEL. Android-платформа на основе Linux и теоретически вы можете запустить андроид на виртуальной машине в среде i686. В этом случае виртуальные машины, такие как vmware, могут выполнять некоторые коды операций напрямую. Но этот параметр будет разрешен только в том случае, если вы пишете на Java. Потому что Java интерпретирует свой байт-код или прекомпилит его перед выполнением. видеть: http://www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks

Ответ 12

Спасибо @zest! Работал как шарм. Некоторые примечания: необходимо применить исправление Intel для HAXM для решения проблемы паники ядра: http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager Кроме того, обратите внимание, что если у вас есть несколько аби, вам необходимо удалить один из-за ошибки в последней версии Android API (r19): https://code.google.com/p/android/issues/detail?id=66740 (удалите armeabi-v7a в этом случае, так как вы хотите x86 abi). Помимо 45-минутного принятия решения, это было очень полезным упражнением с точки зрения повышения производительности эмулятора.

Ответ 13

О, убежище... тот, которого управляют безумные... Горе мне...

В моем блоге есть довольно исчерпывающий ответ на http://tenacious33.wordpress.com/2012/04/05/improving-android-emulator-performance/

Я расскажу об ускоренном режиме r17 в своем блоге через неделю или две. Список предостережений, связанных с ним, не внушает доверия или гордости.

Ответ 14

Я использую процессор Intel/86/CPU. Я создал еще один эмулятор, используя ARM (armeabi-v7a), и я нашел довольно хорошее улучшение со скоростью. Я использую платформу 4.1.2 API-уровень 16

Ответ 15

Альтернативой эмулятору является виртуальная машина AndroVM, которая работает намного быстрее, чем эмулятор, и поддерживает ускорение OpenGL:

http://androvm.org/

Анекдотически, я чувствую, что он работает быстрее, чем реальные Android-устройства.

Ответ 16

Надеюсь, это поможет вам.

Goto to your BIOS settings. Enable your Virtualization technology in your settings..

Он решил мою проблему...

Ответ 17

Обновите текущую версию Android Studio до Android Studio 2.0, а также обновите изображения системы.

Эмулятор Android Studio 2.0 работает ~ 3 раза быстрее, чем предыдущий эмулятор Androids, и с усовершенствованиями ADB теперь вы можете подталкивать приложения и данные на 10 раз быстрее к эмулятору, чем к физическому устройству. Как и на физическом устройстве, официальный эмулятор Android также включает встроенную службу Google Play Services, поэтому вы можете протестировать дополнительные функции API. Наконец, новый эмулятор имеет множество новых функций для управления вызовами, батареей, сетью, GPS и т.д.

Ответ 18

Вы также можете попробовать Visual Studio Android Emulator, который также может быть установлен как автономный эмулятор (вам не нужна Visual Studio), Обратите внимание, что он может быть установлен только в системах Windows Pro или выше.

Ответ 19

Используйте Genymotion вместо эмулятора. Genymotion имеет лучшую производительность https://www.genymotion.com

Ответ 20

выберите эмулятор низкого разрешения (например, Nexus S), если у вас нет хорошей графической карты (например, я)