Заставить эмулятор Android работать быстрее - PullRequest
239 голосов
/ 18 апреля 2010

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

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

Ответы [ 19 ]

222 голосов
/ 17 октября 2012

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

~ 50% быстрее

Windows

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

  • Создание AVD с процессором Intel Atom x86 / 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 / ABI
  • Запуск из командной строки: эмулятор -avd avd_name -qemu -m 512 -enable-kvm * ​​1044 *
  • Или запустить из Eclipse: Запустить / Запустить конфигурации / вкладка «Target» -> проверить Intel x86 AVD и в окне «Дополнительные параметры командной строки эмулятора» добавить: -qemu -m 512 -enable-kvm (нажмите Run)

enter image description here

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

OS-X:

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

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

34 голосов
/ 04 июня 2011

ОБНОВЛЕНИЕ: теперь, когда образ Intel x86 доступен, лучший ответ - изюминка выше.

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

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

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

  1. Отключить гиперпоточность - Поскольку эмулятор, по-видимому, не использует более одного ядра, гиперпоточность фактически уменьшает общее время ЦП, которое получает эмулятор. Отключение HT замедлит работу приложений, использующих преимущества нескольких процессоров. Гиперпоточность должна быть отключена в вашем BIOS.
  2. Заставить эмулятор работать на процессоре, отличном от ЦП 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. Щелкните правой кнопкой мыши по emulator.exe и выберите Set Affinity ...
  4. В диалоговом окне Set Affinity выберите только последний CPU

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

enter image description here

16 голосов
/ 11 июля 2013

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

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

Nexus 7 emulator running at 56.6 fps

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

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

11 голосов
/ 28 января 2013

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

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

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

emulator -avd <avd_name> -gpu on

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

9 голосов
/ 22 марта 2012

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

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

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

ADT rev 17 примечаний: http://android -developers.blogspot.jp / 2012/03 / обновлялся-СДК-инструменты-и-вст-ревизионная-17.html

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

7 голосов
/ 01 февраля 2011

Я недавно переключился с ядра 2 @ 2.5 с 3 ГБ ОЗУ на i7 @ 1.73 с 8 ГБ ОЗУ (обе системы работали с Ubuntu 10.10), и эмулятор теперь работает как минимум в два раза быстрее. Использование большего количества оборудования, безусловно, помогает.

6 голосов
/ 30 декабря 2012

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

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

4 голосов
/ 09 мая 2011

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

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

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

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

3 голосов
/ 17 декабря 2015

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

3 голосов
/ 14 июня 2011

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

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

...