2

Я установил Android SDK и плагин Eclipse на свой ноутбук, но я был удивлен, обнаружив, что эмулятор съедает 100% одного из моих ядер процессора. У меня точно такая же настройка на настольном компьютере, у которого нет этой проблемы. Оба компьютера работают под управлением Linux, и оба были обновлены вчера.

Конечно, настольный компьютер имеет лучшее аппаратное обеспечение, чем ноутбук, но я ожидал, что он приблизится к 50% использования процессора, чем к 100% на ноутбуке.

Оба виртуальных устройства Android имеют одинаковые характеристики:

CPU: ARM
Target: Android 2.3.3 - API Level 10
Skin: WVGA800
SD Card: 512M
hw.lcd.density: 240
vm.heapSize: 24
hw.ramSize: 256

Хост для ноутбука оснащен процессором Intel Core 2 T7200 с тактовой частотой 2 ГГц и оперативной памятью 2 ГБ.
Настольный компьютер оснащен процессором AMD Phenom II X4 940 @ 3GHz с 8 ГБ оперативной памяти.

Эмулятор Android использует только 1 ядро, и вот результаты использования процессора:
Ноутбук:

Cpu0  : 22.8%us, 76.5%sy,  0.0%ni,  0.3%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Cpu1  : 11.2%us,  2.4%sy,  0.0%ni, 86.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2055484k total,  1860304k used,   195180k free,     5276k buffers
Swap:  2000088k total,   106872k used,  1893216k free,   350780k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                       
 2026 xyz       20   0  396m 207m 7192 R  100 10.3   4:11.58 emulator-arm    

Рабочий стол:

Cpu0  :  0.7%us,  0.0%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  1.3%us,  0.0%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  5.0%us,  1.3%sy,  0.0%ni, 91.9%id,  1.7%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.3%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   7666324k total,  6506808k used,  1159516k free,  1650960k buffers
Swap:  8988348k total,        0k used,  8988348k free,  2867300k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                            
 2811 xyz       20   0  392m 220m 6276 S    8  2.9   0:33.58 emulator-arm     

Есть ли способ улучшить производительность эмулятора на ноутбуке?

[ОБНОВЛЕНИЕ] Я запустил эмулятор с теми же настройками, на том же ноутбуке под Win7, и после запуска он не использовал 100% ядра процессора в отличие от Linux. Кроме того, я попытался запустить эмулятор с терминала в Linux, и я получаю это сообщение, когда я не получаю его под настольным Linux-хостом:

Не удалось настроить /dev /hpet на таймер 1024 Гц. Это не фатальная ошибка, но для лучшей точности эмуляции введите: 'echo 1024> /proc /sys /dev /hpet /max-user-freq' от имени пользователя root.

Я не очень знаком с rtc или hpet, но не похоже, что настройка max-user-freq что-то делает, я все равно получаю то же предупреждение.

2 ответа2

1

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

Android AVD снимок

Вы также можете попробовать уменьшить разрешение, если не делаете что-то, не связанное с высоким разрешением.

Но самый эффективный метод - загрузка образа Intel x86. Если ваш процессор поддерживает виртуализацию (VT), то также установите Intel HAXM , производительность будет значительно увеличена.

Android Intel x86 образ

Вы также можете попробовать Android x86 (учебник здесь) на виртуальной машине и использовать команду adb connect IP например, отладку на реальном устройстве через Wi-Fi.

adb connect

adb connect term

1

Ваш процессор AMD обгоняет Intel больше, чем вы думаете, скорее всего. Вы можете попробовать эмулировать дисплей меньшего размера при работе на ноутбуке, или вы можете запустить удаленный эмулятор на вашем рабочем столе, используя NX или аналогичный.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .