Змушує емулятор Android працювати швидше


251

Емулятор Android трохи млявий. Для деяких пристроїв, як-от Motorola Droid та Nexus One, додаток працює на фактичному пристрої швидше, ніж емулятор. Це проблема при тестуванні ігор та візуальних ефектів.

Як змусити емулятор працювати якомога швидше? Я грав з його параметрами, але ще не знайшов конфігурації, яка б показала помітне поліпшення.


1
усі мої програми працюють швидше на пристрої

16
Це смішно, тому що імітатор iPhone якраз навпаки. Програми працюють повільніше на пристрої. У більшості випадків я віддаю перевагу повільнішому емулятору, оскільки він стимулює вас вдосконалити додаток, але іноді просто хочеться, щоб він працював так, як це робиться в реальному пристрої.
hpique

1
Можна змусити його працювати набагато швидше, звичайно, використовуючи VirtualBox - див. Stackoverflow.com/a/6058689/40961
David d C e Freitas

5
iOS та Windows Mobile використовують тренажери, тоді як Android використовує емулятори. Симулятори повторно реалізують усі мобільні бібліотеки та API, використовуючи хост-бібліотеки, і тому вони швидкі. Емулятори використовують ті ж бібліотеки, що і на реальних пристроях, тому це повільніше. Що стосується Android, якщо ви використовуєте віртуальну машину Android, це буде дуже швидко. Ми надаємо безкоштовний vm тут: leapdroid.com
huisinro

2
... і наскільки це божевільно, що через 6 років, і навіть із зображенням системи HAXM та системи x86 та добре розробленим середовищем розробників, емулятор Android все ще повільний як патока?
aroth

Відповіді:


229

Офіційна веб-сторінка

~ 50% швидше

Windows:

  • Встановіть "Intel X86 Emulator Accelerator (HAXM)" => SDK-менеджер / Додаткові
  • Встановіть "Intel x86 Atom System Images" => SDK-менеджер / Android 2.3.3
  • Перейдіть до кореневої папки Android SDK та перейдіть до додатків \ intel \ Hardware_Accelerated_Execution_Manager. Виконайте файл для встановлення IntelHaxm.exe. (у Android Studio можна перейти до: Налаштування -> Android SDK -> Інструменти SDK -> Емулятор Intel X86 Accelerator (інсталятор HAXM))

  • Створіть AVD за допомогою CPU / ABI "Intel atom x86"

  • Запустіть емулятор і перевірте в консолі, чи працює HAXM (відкрийте вікно командної строки та виконайте команду: sc query intelhaxm)

введіть тут опис зображення

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

введіть тут опис зображення

PS під час створення AVD додайте емуляційну пам'ять: Обладнання / Новий / Розмір рамкового пристрою / налаштоване значення 512 або більше

Linux:

  • Встановити KVM: відкрити GOOGLE, написати "встановлення kvm"
  • Створіть AVD за допомогою CPU / ABI "Intel atom x86"
  • Запустити з командного рядка: емулятор -avd avd_name -qemu -m 512 -enable-kvm
  • Або запустити з Eclipse: запустити / запустити конфігурації / вкладку "Target" -> перевірити Intel x86 AVD і у вікні "Додаткові параметри командного рядка емулятора" додати: -qemu -m 512 -enable-kvm (натиснути кнопку Run)

введіть тут опис зображення

PS Для Fedora , для Ubuntu

OS-X:

  • В Android SDK Manager встановіть зображення Intel x86 Atom System Image
  • В Android SDK Manager встановіть прискорювач емуляторів Intel x86 (HAXM)
  • У Finder перейдіть до місця установки Intel Emulator Accelerator та встановіть IntelHAXM (відкрийте dmg та запустіть інсталяцію). Ви можете знайти місце, розмістивши курсор миші над записом Емулятор акселератора в Менеджері SDK.
  • Створіть або оновіть AVD і вкажіть Intel Atom x86 як процесор. Розширювач емулятора Intel x86 (HAXM), що показує розташування

PS: Перевірте цей інструмент, дуже зручний навіть пробний


8
Це працює і в OSX. Потрібно встановити /extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmgпісля завантаження пакета з менеджера SDK.
Джаретт Міллард

5
Вказівки Windows з "Використовувати хост-графічний процесор" дали мені дуже швидкий емулятор! (У мене підтримується процесор Intel і відеокарта nVidia.) Анімації маслянисто гладкі ( більшість часу ; в інший час дуже мало ривків)! Зауважте, що вам потрібно перезапустити Eclipse для AVD Manager, щоб вибрати параметр процесора Intel Atom (x86) . Порада: Не виділяйте занадто багато оперативної пам’яті. З 1 Гб оперативної пам’яті емулятор не вдалося запустити (з графічним процесором), але з 512 Мб оперативної пам’яті він працював плавно і завантажувався дуже швидко (знову ж таки з графічним процесором).
ADTC

Я виявив, що LogCat отримує спам із великою кількістю попереджень про слідування. Щоб відфільтрувати їх, використовуйте ^(?!.*(nativeGetEnabledTags)).*$як текстовий фільтр. Я повідомив про це як про помилку . Крім того, я вважаю, що ви повинні належним чином вимкнути свій емулятор (утримуйте кнопку живлення, потім вимкніть живлення ), щоб уникнути помилок при наступному запуску (я міг просто закрити емулятор ARM, але за допомогою емулятора Intel, просто закриття, здається, створює проблеми).
ADTC

Я б вам дав +100, якби міг. Робота в Windows 8 і виступи надзвичайно зросли!
Паоло М

2
Мені довелося відключити технологію Hyper V спочатку через програму та функції під панеллю управління, щоб дозволити цьому працювати.
Майк Флінн

34

ОНОВЛЕННЯ: Тепер, коли доступно зображення Intel x86, найкраща відповідь - це вище.

Як правильно зазначає CommonsWare, емулятор повільний, оскільки емулює ARM-процесор, який вимагає перекладу на операційні коди Intel. Ця віртуалізація розжовує процесор.

Щоб зробити емулятор швидше, вам потрібно надати йому більше процесора. Почніть з швидкого процесора або оновлення, якщо зможете.

Потім додайте емулятору більше 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. Клацніть правою кнопкою миші на emulator.exe і оберіть Встановити прихильність ...
  4. У діалоговому вікні "Встановити прихильність" виберіть лише останній процесор

Примітка. Коли ви змінюєте спорідненість таким чином, вона змінюється лише протягом життя процесу. Наступний початок, ви повинні зробити це заново.

введіть тут опис зображення


22
Відсоток процесора збільшився вдвічі, коли ви вимкнули гіпер-потоки, оскільки ви скоротили вдвічі кількість логічних процесорів.
Тимофій003

1
Це працює як шарм, але .. Чи знаєте ви, як це зробити на Ubuntu 11.10?
смарагдовий

1
@ Timothy003 так абсолютно правильно. І подвоєний процесор, який використовуватиме емулятор.
mcohen75

3
Ви бачите лише подвоєння в показах менеджера завдань чисел; не насправді. Якщо ви не працюєте з достатньою кількістю програмного забезпечення для створення достатньої кількості роботи, щоб мати еквівалент не менше 4-х потоків при 100% -ному процесорі, то декілька додатків, які роблять важке використання процесора, все одно ефективно отримають майже все ядро, а не половину ядра, яке ви наївно вважаєте який менеджер завдань відображає засоби.
День підлягає Firelight

3
Щоб підтвердити те, що говорить @Dan Neely: У мене є одноядерний додаток, який просто спалює 100% процесор. Коли у мене HT, він показує близько 25%, без цього він показує близько 50%, але насправді в обчисленні того, що він повинен обчислити за той же час. Так що різниці (принаймні, на Піщаному мосту).
bartosz.r

17

Я хотів би запропонувати відмовити Генімоція . Він працює у VirtualBox Oracle і законно може отримати 60 кадрів в секунду на помірній системі.

Ось скріншот одного з моїх семінарів, який працює на моделі MacBook Air низького класу 2012 року:

Емулятор Nexus 7 працює з 56,6 кадрів в секунду

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

(Джерело демонованої анімації можна знайти тут .)


12

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

Щоб увімкнути графічне прискорення, включене за замовчуванням на вашому емуляторі : під час створення AVD у розділі «Обладнання» натисніть «Створити», виберіть емуляцію GPU та встановіть значення «Так».

Щоб активувати прискорення лише під час виконання : використовуйте прапор -gpu під час запуску емулятора таким чином:

emulator -avd <avd_name> -gpu on

Джерело: Використання емулятора підручника від Google .


10

Редагування Хоча використання зображень Intel отримує певну прибутковість, продуктивність, отримана за допомогою Genymotion, значно більша. Дивіться відповідь Пола Ламмерцми .

Попередній відповідь

Завдяки ADT rev 17 емулятор підтримує запущені системні зображення x86 у режимі віртуалізації в Windows та Mac OS X. Це помітно впливає на продуктивність.

ADT rev 17 примітки: http://android-developers.blogspot.jp/2012/03/update-sdk-tools-and-adt-revision-17.html

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


7

Нещодавно я перейшов з ядра 2 @ 2.5 з 3 Гб оперативної пам’яті на i7 @ 1,73 з 8 ГБ оперативної пам’яті (обидві системи працювали на Ubuntu 10.10), і емулятор працює як мінімум удвічі швидше. Кидання більше апаратних засобів на це, безумовно, допомагає.


Це насправді не є рішенням: це може змусити емулятор мати більш високу пропускну здатність за раз, але насправді не змусить його працювати швидше.
Чіткіший


4

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

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

Eclipse + емулятор Android разом з'їдають тонну оперативної пам’яті. Я рекомендував би 3 гіга оперативної пам’яті хоча б тому, що я використовував систему з 2 гігами оперативної пам’яті, і вона сповільнилася, оскільки у системи закінчилася оперативна пам’ять і почав використовувати файл сторінки.

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


4

У цьому році введення вводу / виводу Google (2011) Google продемонстрував більш швидкий емулятор. Проблема полягає не стільки в байтовому коді між ARM і x86, скільки у візуалізації програмного забезпечення, яке здійснює QEMU. Вони обходять візуалізацію QEMU і надсилають візуалізацію безпосередньо на X сервер, на який я вірю. Вони показали автомобільну гру з дійсно хорошим виконанням та кадром в секунду.

Цікаво, коли це буде доступно для розробників ...


Будь-які новини цього емулятора? Як його звали?
alcor

У мене немає ніяких новин. Я не слідкував за оновленнями емулятора Android протягом останнього року.
Сезар

3

Нещодавно Google оголосив про новий емулятор для Android. Це набагато швидше і краще, ніж старе. Більше інформації про це можна знайти тут .


1

Я думаю, це тому, що віртуальна машина clr використовує процесор безпосередньо без перекладу коду на код. Це може бути оптимізація для програми CLR, або Windows 7 / віконний телефон 7, запущений на процесорі INTEL. Платформа Android на базі linux і теоретично ви можете запустити android на віртуальній машині в i686 середовищі. У цьому випадку віртуальні машини, такі як vmware, можуть виконувати деякі опкоди прямо. Але ця опція буде дозволена лише в тому випадку, якщо ви пишете на Java. Оскільки Java інтерпретує їх байт-код або попередньо компілює його перед виконанням. дивіться: http://www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks


1

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


1

Ви також можете спробувати емулятор Visual Studio Android , який також можна встановити як окремий емулятор (Visual Studio не потрібен). Зауважте, що його можна встановити лише в Windows Pro або новіших системах.



1

виберіть емулятор низької роздільної здатності (наприклад, Nexus S), якщо у вас немає гарної графічної карти (як я)


0

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


0

Я сподіваюся, що це вам допоможе.

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

Це вирішило мою проблему ...


0

Оновіть свою поточну Android Studio на Android Studio 2.0, а також оновіть системні образи.

Емулятор Android Studio 2.0 працює на 3 рази швидше, ніж попередній емулятор Android, і завдяки удосконаленню ADB тепер ви можете натискати програми та дані в 10 разів швидше на емулятор, ніж на фізичний пристрій. Як і фізичний пристрій, офіційний емулятор Android також включає вбудовані Служби Google Play, тому ви можете перевірити більше функцій API. Нарешті, новий емулятор має багаті нові функції для управління дзвінками, акумулятором, мережею, GPS тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.