company_banner

Как разогнать эмулятор Android

    Intel HAXM
    Каждый, кто хоть раз работал с эмулятором для разработки приложений под Android, знает, что даже на современном железе эмулятор тормозит так, что для его использования нужно нечеловеческое терпение. То есть, наверное, надо самому стать андроидом-киборгом.

    Но есть и еще один метод – попроще.

    Intel Hardware Accelerated Execution Manager (Intel HAXM) — это решение, использующее аппаратные возможности виртуализации (Intel VT) и позволяющее значительно ускорить работу эмулятора Android.

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

    В случае разработки приложения, использующего только Dalvik разработчику не придется ничего менять, т.к. приложение не заметит разницы. В случае с NDK приложением необходимо будет добавить поддержку x86 архитектуры к списку собираемых библиотек. Сделать это несложно, нужно просто добавить поддержку x86 в make файл.

    Системные требования


    • Процессор с поддержкой VT-x, EM64T, Execute Disable Bit. Чтобы узнать поддерживает ли ваш процессор перечисленные возможности, можно воспользоваться сайтом ark.intel.com
    • Как минимум 1 Гб, а лучше 2Гб оперативной памяти.

    Поддерживаемые ОС


    • Windows 7 (32/64), Windows Vista* (32/64), Windows XP (32)
    • Mac OS X 10.6 и выше (32/64)
    • Ubuntu (64)

    Установка


    Intel HAXM можно установить как вручную, так и используя Android SDK Manager.

    Установка вручную


    Зайдите на сайт software.intel.com/ru-ru/android и скачайте установочный пакет для вашей платформы. Далее запустите установку и следуйте подсказкам мастера установки.

    Установка с помощью Android SDK Manager




    1. Запустите Android SDK Manager
    2. В разделе Extras выберите «Intel Hardware Accelerated Execution Manager»
    3. Отметьте его галочкой и нажмите «Install package…»
    4. Далее подтвердите соглашение с лицензией и нажмите кнопку «Install»
    5. SDK Manager скачает и распакует пакет в каталог extras, находящийся в каталоге, в который был установлен Android SDK
    6. Перейдите в этот каталог и запустите установку Intel HAXM



    Установка Intel HAXM


    В процессе установки вам предложат определить объем выделяемой оперативной памяти. Вы можете оставить значение, предложенное по умолчанию. Если в процессе работы вы захотите изменить это значение – запустите установку еще раз.



    В процессе установки может возникнуть и такое



    В этом случае проверьте настройки в BIOS, возможно виртуализация поддерживается вашей системой, но по-умолчанию отключена.

    Для того, чтобы проверить, что все установлено верно и работает, необходимо в командной строке выполнить:

    sc query intelhaxm

    После выполнения данной команды вы увидите текущий статус службы



    Так же может пригодится способ остановить службу:

    sc stop intelhaxm

    Запустить службу:

    sc start intelhaxm

    Установка эмулятора Android x86


    Описанное выше было не что иное, как подготовка почвы. Теперь необходимо установить сам эмулятор, который мы хотим «разогнать» с помощью Intel HAXM. В настоящий момент их два:

    • Android 4.0.3 (API 15)
    • Android 2.3.3 (API 10)

    Устанавливаются они с помощью Android SDK Manager. Запускаем, отмечаем галочками интересующие нас образы и устанавливаем.



    Создание виртуального устройства


    После установки образа эмулятора Android для x86 необходимо создать новое виртуальное устройство с помощью Android Virtual Device Manager. Для этого:

    • Запускаем ADV Manager
    • Выбираем создание новойго устройства «New...»



    1. В окне свойств задаем произвольное название, например «Intel_Android»
    2. Выбираем версию, в моем случае версия «Android 4.0.3 – API Level 15»
    3. Устанавливаем остальные параметры (размер и наличие SD карты, разрешение и т.д.)
    4. Далее следует добавить обязательный параметр в раздел «Hardware» — «GPU Emulation» (кнопка «New», в списке «Property» необходимо выбрать «GPU Emulation», затем «ОК») и установить его в «yes»



    Готово! Теперь осталось запустить и проверить все ли настроено верно. Выбираем созданный эмулятор и запускаем его кнопкой «Start». Далее идем в настройки и смотрим название устройства. Если все было сделано правильно, то для нашего примера, в поле «Model number» мы увидим строку «Android SDK Build for x86».



    Конец мучениям и долгим ожиданиям! Наш эмулятор начал работать быстрее, причем настолько, что можно прямо из него просматривать видео с Youtube в режиме реального времени, а не как раньше в режиме слайд-шоу.
    Intel 159,24
    Компания
    Поделиться публикацией
    Похожие публикации
    Комментарии 50
    • 0
      Я же правильно понял, что эмулятор обычно тормозит, потому что ему нужно эмулировать ARM? Извиняюсь за тупой вопрос, просто не пишу под Android.
      • +2
        Да, поэтому. С HAXM скорость увеличивается как раз за счет того, что инструкции, без трансляции, исполняются на системном CPU.
      • 0
        Приложения, использующие native-библиотеки под ARM, заведутся?
        • 0
          Пересобрать сначала под x86.
          • 0
            По идее не должны. Но если это Ваши приложения — то собирайте нативные либы под все архитектуры — arm, mips и x86.
            • +2
              Проблема как раз в том, что не мои. Понятно, будем продолжать использовать реальные железки через дата-кабель.
              • 0
                Зачем жеж дата-кабель. Можно через wifi, adb прекрасно работает по воздуху. Использую для этого adbWireless из маркета.
                • 0
                  Да как-то привычнее по хвосту + не уверен, что unity remote будет работать иначе.
                  • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                С HAXM нет, заведуться только х86, для native arm понадобиться не х86 sdk и соответсвенно тормозно эмулятор.
              • +1
                Ok, Gentoo amd64 — пишет: Intel Hardware Accelerated Execution Manager — Not compatible with Linux. Точно linux поддерживается?
                • +4
                  Ага, кажется понял. Линуксоидам в свойственном им духе — дается документашка как поднять kvm и запустить эмулятор с --enable-kvm опцией. Хорошо, будем пробовать.
                  • 0
                    А что там под капотом? Банальный QEMU что ли?
                    • 0
                      А нужен нескучный VBox?
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    А Google Maps Api там будет работать?
                    • 0
                      работоспособность maps api от этого никак не зависит, зависит от версии sdk, на которой поднимаете эмулятор, чтобы работали карты нужна версия с google api
                      • 0
                        простите, понял к чему был вопрос.
                      • 0
                        Я сам их туда закинул и собрал такой образ и даже уже в какой-то похожей теме давал линк именно Вам на этот образ с google maps :)
                      • 0
                        Сапсибо, у меня на макоси эмулятор теперь тоже летает :)
                        Теперь осталось собрать ffmpeg под x86…
                        • +5
                          А амдшная виртуализация поддерживается? :)
                          • 0
                            Попробовал на работе — не запускается, черный экран и все. Проц pentium e5400
                          • НЛО прилетело и опубликовало эту надпись здесь
                            • –1
                              А если службу остановить, образ запускается?
                              • 0
                                А у меня x86-образ и с HAXM, и без HAXM не запускается. В лучшем случае на экране бесконечно идёт анимация надписи ANDROID и всё; в худшем — такой же чёрный экран, как и у mezhevikin.
                                2410M, W7 x64
                              • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                И у меня не работает. Черный экран.
                                Win 7, x64, i5-2430M
                              • –1
                                На AMD работает?
                                • –1
                                  Intel Hardware Accelerated Execution Manager
                                • НЛО прилетело и опубликовало эту надпись здесь
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                      • +1
                                        Только на железках TI 44x0 и Qualcomm Krait. NVIDIA и Intel пока на 2.6.x.
                                      • +1
                                        Нууу, секрет Полишинеля.
                                        Я еще год назад тестировал на образах от android-x86.org (тогда были стабильные 2.2 и пионерские 2.3, а сейчас они уже дошли до ICS).
                                        Есть, к слову, решение еще хулигантней — загрузиться с android-x86 на физически отдельной машине (у меня под рукой были Toshiba Satellite и Acer Aspire 1, но судя по первому, пошло бы вообще на чем угодно). Подхватились камера, акселерация графики, сеть (включая wi-fi)…
                                        Правда, при использовании отдельной железки пропадает основная плюшка эмулятора. Зато остается дополнительная, которая едва ли не важней: root из коробки.
                                        (Тестирования на реальном телефоне никто никогда не отменял, но при таком раскладе оно свободно уезжает куда-нибудь к betta milestone, после того, как доточены архитектура и бизнес-логика.)
                                        • 0
                                          А если говорит что NX not present?
                                          • 0
                                            Если у кого тоже будет писать проверьте в BIOS для CPU Execute Disable Bit должен быть Enabled
                                          • +1
                                            2.3 вообще реально запустить с поддержкой intelhaxm? У гугла написано:
                                            «Start the AVD Manager and create a new AVD with the Target value of Android 4.0.3 (API Level 15), revision 3 or higher.»
                                            А в SDK менеджере для андроида 2.3.3 есть пакет Intel Atom x86 System Image
                                            • 0
                                              Да, я запустил, делаете все, что написано в статье, кроме пераметра GPU emulation, с ним не запускается. И еще в таргете AVD выбрать Intel Atom x86 System Image.
                                          • +4
                                            Автор!

                                            Жги ещё!

                                            Существование Хабра для меня теперь оправдано одной этой статьёй.
                                            • 0
                                              В osx при установке HAXM virtualbox отказывается далее работать, инструкция vt-x постоянно занята получается, пришлось удалить на время этот ускоритель и отлаживать далее через разные телефончики. Может кто-то сталкивался или выходил релиз поновее с управлением использования инструкций под себя? Disabe сделать HAXM этому не нашел как.
                                              • 0
                                                sc stop intelhaxm… нет?
                                              • 0
                                                Вроде быстрее, но не прям вот youtube смотреть. тормозин он
                                                • 0
                                                  Спасибо, скорость реально возросла в несколько раз!
                                                  • 0
                                                    Интересно было бы понять, в чем принципиальная разница с простой эмуляцией x86 (который доступен для эмуляторов API L10). Я думал что в таком эмуляторе инструкции уже не эмулируются. Что же нам дают эти интел-ускорители?
                                                    • 0
                                                      Наблюдаю падения ОС при использовании AVD c GPU emulation:
                                                      Linux Mint 12, 2.6.38-8, x86_64
                                                      Ноутбук Acer Aspire 3820GT. У кого-нибудь есть похожие проблемы?
                                                      • 0
                                                        Кстати, столкнулся с проблемой.
                                                        В емуляторе не работает звук, но в в настройках AVD Manager нет закладок с редактированием hardware опций.
                                                        Лечится следующим образом
                                                        1. Заходим в C:\Users\\.android\avd\<avdName.avd>
                                                        2. Открываем config.ini, добавляем в конец hw.audioOutput=yes
                                                        3. Перезапускаем avd

                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                        Самое читаемое