Пользователь
0,0
рейтинг
29 июня 2013 в 18:52

Разработка → Мы спасены! Genymotion — забудьте про вашего эмулятора-слоупока

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

Но не стоит унывать! Вашему вниманию представляется Genymotion — решение, основанное на Virtual Box, которое виртуализирует, а не эмулирует Android, откуда и сумасшедший прирост производительности.

Скриншот экрана Genymotion с запущеным образом Nexus7:



Вы скажете, что и раньше были решения, основанные на виртуализации. Но все что я видел, требовало долгой настройки и содержало сложности в работе в дальнейшем. В свою очередь, Genymotion имеет полный набор средств для быстрой и качественной работы: shell, более 10 виртуальных устройств и интеграцию с Eclipse и Android Studio. При чем все это работает на Linux, Mac и Windows и имеет сногсшибательный UI.
По нескольким тестам, которые провел Cyril Mottier, на Nexus 4 и на инстансе Genymotion получились такие результаты:


Как видите, разница разительная.

Из приятных фич: простое эмулирование GPS координат, встроенные Google Apps на многих образах, shell позволяющий управлять сенсорами, быстрые старт и деплой.

Сейчас Genymotion находится в активной стадии разработки и ему не хватает некоторых фич, но, на мой взгляд, он уже годен для использования в продакшене.
flash_ua @flash_ua
карма
13,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (65)

  • +7
    Очень противоречивый продукт.

    С одной стороны, действительно, стартует практически моментально и работает достаточно быстро. А с другой, за три дня использования он крэшился около 5 раз, дважды не смог выйти из режима «сна» и один раз подвесил IDEA, заспамив вывод дебаггера какими-то своими сообщениями об ошибке. Возможно, что это какие-то проблемы Win реализации, но все равно неприятно. Да, оригинальный эмулятор тоже не безгрешен, но у меня все это происходит не чаще раза в неделю. Да и крэшей стандартного эмулятора я не видел, обычно «отваливается» сеть.

    Опять же, «высокая» скорость очень относительна. С аппаратным ускорением обычный эмулятор у меня работает может и не быстрее, но уж точно плавнее. Фрагменты в Genymotion загружаются как-то рывками. Причем как из кэша, так и из сети. В чем проблема я не разбирался, но выглядит не очень красиво.

    А больше всего удручает ограниченный набор образов для тестирования и невозможность менять ориентацию. Я понимаю, что всего не предусмотришь, но поиграться с «тонкими настройками» эмулятора для тестов иногда просто необходимо. А уж «повертеть» экран, отлавливая возможные глюки с позиционированием элементов, восстановлением состояния и асинхронными процессами, это святое дело.
    • 0
      Да, в некотором симысле вы правы — продукту есть куда расти. Но, как мне кажется, большинство проблем решатся в ближайшем будущем. И уже сейчас этот инструмент пригоден для повседневного использования.
    • +5
      Это же только первая бета. Уверен, большая часть проблем решится со временем.
  • –11
    эмулятор слоупока
    прочитав название подумал, что что-то интересное будет, а тут…
  • +6
    Вчера тоже наткнулся на проект — с одной стороны да, быстрое, но с другой там только 16 и 17 версии апи, с таким же успехом можно использовать обычный эмулятор с образами от Интел, он и так летает без установки дополнительной проги в красивой обертке, регистрации, скачки, запуска и логина.
    • +2
      Да, с версиями действительно пока что скудно. Но все-таки Genymotion стартует быстрее (~5 сек) и деплой тоже очень быстрый. То есть эта штука отлично подходит для «дорисовал палочку — проверил». Для глубого тестирования все равно остаются устройства.
      • +1
        На KVM и образе интела эмулятор абсолютно с нуля (т.е. с пустым /data) стартует за четыре секунды, вы о чем вообще? Плюс все наработки qemu и все такое.
        • 0
          А как у этого всего с интегрецией с IDE?
          • 0
            Кхм. Используется тот самый нативный эмулятор из ASDK. Я это и упомянул — там qemu в обертке. Если уж IDE не умеет работать со стандартными эмуляторами из ASDK — то с этим проблем будет еще больше.
        • 0
          Вот уж не знаю. На моей машина с образом интела все работает и запускается раза в 2-3 быстрее, но уж никак не 4 секунды с нуля. Минуты три — да.
          • 0
            Не, ну если не верите — могу видео записать :)
            Три минуты для запуска — это у меня было на древней машинке еще с AM2 сокетом и без аппаратной виртуализации. Ну и образ arm был.
          • +1
            У меня вот обычный сдк, на убунте с i5 — стандартный эмулятор с Intel образом грузится с нуля за 5 секунд. И визуально ничем не медленнее чем genymotion.

            А вот когда нужно какой-нить костыль под 2.х проверить — тут да, надо ждать 2-3 минуты и ничего не поделаешь.
            • 0
              А какой смысл на убунте использовать образ Intel, если HAXM нет для линукса? Там же скорость работы по моему почти что сопоставима со стандартным эмулятором…
              • 0
                Хм, возможно мы говорим о разных образах — я под стандартным имею в виду вот этот cdn2.sbnation.com/entry_photo_images/4134473/intel_avd_large_verge_medium_landscape.jpg

                Смысл использования в том, что он грузится за 5 секунд и летает, ничем не уступая Genymotion или просто Android x86 запущеному в виртуалбоксе. В том время как ARM грузится 2-3 минуты и тупит.
              • +3
                Я вам сейчас такой секрет скажу. На убунте образами от интела могут пользоваться даже люди с процессорами AMD, ибо аппартаная виртуализация идет через KVM для обоих вендоров. Надо только включить виртуализацию в биосе и добавить модули kvm kvm-{intel,amd} в автозагрузку — тут даже arm образы становятся шустрыми.
                • 0
                  Аа, да да, вспомнил, я на когда на рабочем ноуте с убунтой пытался настроить kvm, уперся в то, что на нем не поддерживалась виртуализация, и наступила пичаль( Пришлось другой ноут покупать.
            • 0
              Для 2.3.3 (API 10) есть образ под x86 и загружается со скоростью образов 4.х. Не API 8, конечно, но, кажется, на большей части уже 2.3+
              • 0
                Спасибо, обновил — таки летает.
    • –2
      Боюсь это он и есть, только в красивой коробочке.
    • 0
      На днях ставил. Genymotion работает гораздо быстрее эмулятора от Интел, и в целом поудобнее.
      • +2
        Может и удобнее(хотя хотелось бы узнать чем), но как он может работать быстрее x86 сборки андроида в эмуляторе с аппаратной виртуализацией?
        • –1
          Чем удобнее — озвучено в посте. Как он может работать быстрее — ну как минимум Genymotion работает через VirtualBox, а не тормознутый QEMU, как родной эмулятор, соответственно там почти все работает по-другому, и реализация Genymotion при этом быстрее.
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              Как бы в Genymotion тоже виртуализация. HAXM это костыль для QEMU. И не стоит забывать, что CPU — это еще не вся машина
              • НЛО прилетело и опубликовало эту надпись здесь
                • 0
                  Со сглаживанием шрифтов беда какая-то

                  А я думал, что это у меня с монитором что-то.

                  После блокировки Андроид подвис секунд на 10 (не реагировал на касания)

                  Это «стандартное» поведение. Иногда он вообще падает из блокировки в «белый» экран и больше не просыпается.
  • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Интересно, а SMS он получать умеет?
    Образ, запущенный в VM, — не умеет.
  • –1
    Проще купить Nexus 10.
    • –3
      Да, у каждого имеются 12к рублей для того же самого первого опыта в Андройд написании.
      • –1
        Инвестиция окупается за месяц.
        • +2
          Ну если за месяц сделать гениальное приложение, которое получит 12к рублей в месяц, то может быть. Но так почти не бывает.
        • 0
          У вас каждый первый опыт инвестируется?
      • 0
        Видимо все таки каждый имеет 12к рублей для того, чтобы сразу же начать разрабатывать. Не зависимо от того, пойдет оно или нет :)
  • +1
    Тоже сегодня прочитал блог Cyril Mottier и сразу бросился тестить. Насторожили такие моменты?
    1. Все время отпадает от adb, лечится только перезапуском эмулятора (надеюсь пофиксят).
    2. Требует регистрации и логина, что говорит о том, что продукт будет каким-то образом монетизироваться. Надеюсь, они выберут демократичный путь, что-то типа покупки образов для тестирования.

    К сожалению, у меня AMD, иначе бы пользовался образами образами x86 для Интел.
    • 0
      Не знаю связано ли, но на маке отпаданий от adb не заметил.
    • +1
      Про (1): adb kill-server/adb start-server не помогает? Стандартный эмулятор тоже этим болеет, kill-server/start-server помогает, и гораздо быстрее, чем перезапускать эмулятор.
      • 0
        Вот как раз перезапуск демона и не помогает. Я первым делом попробовал.
      • 0
        Даже реальный девайс этим страдает (на самом деле больше похоже на проблему демона, раз его перезапуск решает проблему).
  • +2
    • +2
      И плагины, чуть не забыл:
      Eclipse
      IDEA
  • 0
    Извините, вопрос непрофессионала!
    А можно его использовать для запуска андроид -программ под вин? И для передачи данных андроид — вин?
    • +1
      Там просто виртуалбокс. Вполне можно. Пока не ставил, так что не могу сказать ничего о производительности, но как минимум передача данных через adb точно будет работать.
    • –1
      Как говорят там просто VirtualBox, т.е. x86 архитектура, девайсы на андроид почти всегда с arm архитектурой. Т.е. программы скорее всего не будут работать или будут, но далеко не все.
      • НЛО прилетело и опубликовало эту надпись здесь
        • +1
          Даже приложения с нативными библиотеками сейчас часто содержат либы для разных платформ, но так как Маркет позволяет разделять apk на несколько для разных ЦП, то файл, выдранный с ARM-устройства, соответственно может не завестись на x86-эмуляторе.
          • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Многие интересные приложения платформозависимые, к примеру банальное приложение для соц сети Вконтакте содержил армовую версию ffmpeg для проигрования мультимеди данных. Слабо представляю как оно будет работать в x86 виртуализированной среде. Другое дело что можно найти apk-шку для x86.
  • +2
    Вроде как BlueStacks тоже быстрый.
    • +1
      Когда я последний раз его смотрел, он отказался запускаться по той причине, что установлено ПО виртуализации. Как было сказано разработчиками, BlueStacks не будет работать если у вас установлено что либо из списка:
      a) Microsoft Virtual PC
      b) Intel's Hardware Accelerated eXecution Manager (HAXM) released with latest Android SDK (а это уже откровенный бред !)
      c) Microsoft Windows 7 XP mode (!?!)
      d) VMWare Workstation,
      e) Oracle VirtualBox
      Это делает его абсолютно неприемлемым для разработчиков.
      • +1
        Всё работает без проблем.
        • 0
          Подтверждаю — VB, WMWare player, BlueStacks. Причем скорость работы выше, фишки плотной интеграции в хост-систему (установка apk дабл кликом) и по мелочи.
  • 0
    Я бы сказал проблема наоборот, под интеловским образом обычного эмулятора андроид все работает быстрее чем в реальной жизни. Сложно оценить тяжелые моменты.
  • 0
    «Application Failure detected» — при попытке поиска и установки приложений. Я так понимаю — из-за того что большинство приложений всё-таки на ARM?
    • 0
      Хотя apk чрез adb установился. Правда звук с треском, но я уж привык что идеала не бывает.Ну ладно, поиграем с ребёнком в light-bot на PC.
      • +1
        Не мучайтесь — вот оригинальные веб-версии:

        Light-bot
        Light-bot 2.0
        • 0
          Вот спасибо, мил человек!
  • 0
    Я никак не могу понять: почему они не сделают «эмулятор» на базе принципа запуска x86-версии Dalvik VM поверх реального процессора ПК? Ведь замечательно бы было для задачи отладки приложений, не использующих NDK. Да, я слышал, вроде есть какие-то решения на этом прицнципе, но на сколько я понял, они не предназначены для отладки приложений и не умеют имитировать окружение смартфона.
  • 0
    Блин, а как экран повернуть в эмуляторе? (-:
    • –1
      В стандартном — LCtrl+F11
  • 0
    Эмулятор + HAXM + GPU Acceleration вот уже где-то год работает прекрасно, и более чем достаточно, даже чтобы тестировать анимации.
  • 0
    Чего же не протестироли Intel Atom x86 образ + Use Host GPU, ах да, он жешь работает быстрее virtualbox.
    На самом деле, интеловский образ очень и очень шустрый, я бы даже сказал что на уровне или даже быстрее виртал бокса (genymotion).

    1. Другая проблема с genymotion — размер экрана, он выставлен не правильно. Размер экрана со всеми кнопками, меньше чем выбран, из-за чего нельзя понять, толи графика из программы размытая, толи из-за того что не правильно выставлен размер.
    2. Иногда отваливается adb на genymotion.
    3. Нет возможности легко запустить образ с другим разрешением экрана или dpi

    Ни одной из этих проблем нету на оригинальном эмуляторе.
    Но конечно, genymotion, является спасением для не Intel пользователей.
    • +1
      3. Есть (кнопка в виде монитора в списке устройств).
      Насчет производительности — не соглашусь. Даже при Use Host GPU 3Д-графика у меня еле ползает почему-то, в Genymotion же — ОК.
      Ну и мне, например, в Genymotion важна поддержка Bluetooth, которой в родном эмуляторе нет совсем.
      • 0
        Опять же, там только пред определенный список, который нельзя настраивать, беглый просмотр показывает, что нету например hdtv.
        В родном эмуле вы можете создать любое разрешение, с любым dpi, а так же выбрать тип: xlarge/large/long и тд.

        > Насчет производительности — не соглашусь
        Может видюха какая то слабая стоит? Я сделал простой instrumentation test (10 тестов гоняют активити), и он отработал на 1сеунду быстрее genymotion. И это не какой нибудь там unit test, тут полноценно создаются активти, если бы оно тормозило, то по времени было бы медленнее чем genymotion.
        То есть и на глаз видно что чуть быстрее, и это так же подтверждают тесты.
      • 0
        Отписались из суппорта, обещали в следующей версии исправить размеры экрана и добавить настройки для dpi.

        p.s. если у вас еле ползает, значит образ не интеловский выбран, должен быть CPU/ABI: Intel Atom (x86)

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