Сделать эмулятор Android работать быстрее

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

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

20 ответов


официальный сайт

~50% быстрее

Windows:

  • установить" Intel x86 Emulator Accelerator (HAXM) " = > SDK-Manager/Extras
  • установить "Intel x86 Atom System Images" = > 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 installer))

  • создать 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"
  • создать AVD с" Intel atom x86 " CPU / ABI
  • запуск из командной строки: emulator-avd avd_name-qemu-m 512-enable-kvm
  • или запустить из Eclipse: запустить/запустить конфигурации / вкладка "цель" - > проверить Intel x86 AVD и в окне "Дополнительные параметры командной строки эмулятора" добавить: - qemu-m 512 - включить-kvm (нажмите кнопку Выполнить)

enter image description here

П. С. Для Fedora, для Ubuntu

OS-X:

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

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


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

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

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

затем дайте эмулятору больше CPU, который вы есть:

  1. Отключить Гиперпоточность - поскольку эмулятор не использует более одного ядра, hyperthreading фактически уменьшает общее время процессора, которое получит эмулятор. Отключение HT замедлит приложения, которые используют преимущества нескольких процессоров. Hyperthreading должен быть отключен в BIOS.
  2. заставьте эмулятор работать на процессоре, отличном от 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:

  1. Открыть Диспетчер Задач
  2. нажмите " Просмотреть все процессы "(для запуска от имени администратора, иначе вы не сможете установить сродство процессора)
  3. щелкните правой кнопкой мыши эмулятор.exe и выберите Set Affinity...
  4. в диалоговом окне Set Affinity выберите только последний CPU

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

enter image description here


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

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

Nexus 7 emulator running at 56.6 fps

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

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


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

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

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

emulator -avd <avd_name> -gpu on

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


редактировать хотя использование образов 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


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


просто хотел сказать, что после установки ускорителя Intel HAXM и использования образа Intel Atom эмулятор работает в 50 раз быстрее. Разница удивительная, проверьте это!

http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html


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

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

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

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


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

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


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


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


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


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

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

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


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


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

http://androvm.org/

Anecdotally, я чувствую, что он работает быстрее, чем фактические устройства Android.


Я надеюсь, что это поможет вам.

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

это решило мою проблему...


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

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


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


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


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