- PVSM.RU - https://www.pvsm.ru -

Что делать, если под рукой нет Android-устройства? Обзор Android-эмуляторов

Введение

Часто бывает необходимость проверить работу свеженаписанного приложения на устройстве. Но вполне может оказаться, что устройства под рукой нет. Или нет устройства с определенными параметрами (правда, это больше относится к размеру/разрешению экрана). Что же делать в этом случае?
К счастью, альтернативы есть. Android-сообщество и разные компании предлагают на выбор несколько вариантов замены android-устройств для разных целей.

Я кратко расскажу о следующих:

  • Эмулятор в составе SDK
  • Genymotion
  • Android x86
  • Bluestacks

Если интересно — добро пожаловать под кат (осторожно, достаточно много картинок)

Эмулятор в составе SDK

image

Сайт: http://developer.android.com/sdk/index.html [1]
Самый очевидный способ подмены устройства. Если занимаешься разработкой под Android — эмулятор точно есть.

Использование

Для использвания достаточно открыть AVD Manager из эклипса или в консоли

/path/to/sdk/tools/android avd

создать свой AVD (Android Virtual Device) и запустить. Более подробно процесс описывать не буду, все достаточно просто.
Однако не обошлось без особенностей. ARM-эмуляторы до ужаса медленные. Что-то нормально проверить практически невозможно, особенно на не очень сильном железе (потому что эмуляция процессора с другой архитектурой). Тут на помощь может прийти технология Intel HAXM [2], однако это чревато тем, что платформо-зависимый код (который должен работать под ARM) может не работать, поскольку используется x86.

Скриншоты

AVD manager
Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов
Параметры запуска
Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов
Сам эмулятор
Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов
Плюсы

  • Кроссплатформенное решение
  • Входит в состав SDK, не нужны сторонние тулы
  • Конфигурируемый (размер памяти, подключение камеры и т.д)
  • Доступ по telnet [3] для настройки параметров сети, батареи и т.д.
  • Плагин для Eclipse, легкий доступ через adb
  • Обновляется сразу после выхода новой версии Android

Минусы

Genymotion

image

Сайт: http://www.genymotion.com/ [5]
Проприетарная реализация, выросшая из проекта AndroVM.
По сути, виртуальная машина на VirtualBox с дополнительными фишками вроде своих контролов, расширенной настройки и т.д.
Достаточно удобен, быстр, много возможность, коммандлайн тулы, Java API для тестов.
При создании устройства из сети выкачивается его образ.
APK можно устанавливать, перетянув их на окно с виртуалкой.

Скриншоты

Окно работающего девайса
Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов
Создание виртуального девайса
Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов
Главное окно приложения
Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов

Плюсы

  • Кроссплатформенное решение
  • Быстрый
  • Много дополнительных тулов (контроль заряда, акселерометра, API для тестов и т.д.)
  • Плагин для Eclipse, легкий доступ через adb

Минусы

  • Платный для компаний, и это главный минус
  • Не ARM
  • Достаточно долгий выход актуальных версий Android

Android x86

image

Сайт: http://www.android-x86.org/ [6]
Проект по портированию Android на платформу x86. Распространяется в виде образа iso, можно запустить/установить в виртуальной машине, при большом желании можно даже поставить на живую машину с x86 процессором (на ноутбук, например).
Работает быстро, но есть куча проблем из-за того, что это виртуальная машина. Например, привязывние мыши внутри окна виртуалки, доступ к adb только по сети и т.д.

Для использования в VirtualBox нужно отключать Mouse Integration, иначе в виртуальной машине не видно курсора.

Для подключения adb нужно выполнить

adb connect ip.add.res.s

IP-адрес можно узнать, нажав в машине Alt+F1 и введя netcfg. Вернуться в графический режим — Alt+F7.

Скриншоты

Главное окно:
Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов
Консоль с IP-адресом:
Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов

Плюсы

  • Кроссплатформенное решение (везде, где есть VirtualBox)
  • Быстрый

Минусы

  • Неудобный доступ к adb
  • Минусы, связанные с использованием VM — привязка мыши, например
  • Не ARM
  • Очень долгий выход актуальных версий

Bluestacks

Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов

Сайт: www.bluestacks.com [7]
Позиционируется как плеер приложений для Windows, Mac и TV. Умеет запускать приложения, имеет доступ к маркету. Неудобен для разработки и тестирования — apk ставятся тулом из комплекта, доступа к adb нет, дебажить не получится. Однако для запуска приложений может быть полезен.

Скриншоты

Запуск:
Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов
Главное окно:
Что делать, если под рукой нет Android устройства? Обзор Android эмуляторов

Плюсы

  • Кроссплатформенное решение (правда, только Mac и Windows)
  • Быстрый

Минусы

  • Нет доступа к adb
  • Неудобно ставить приложения
  • Непонятно, что с версиями android (по виду — 2.3)
  • Нет под linux

Вывод

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

Автор: romashko_o

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/android/58622

Ссылки в тексте:

[1] http://developer.android.com/sdk/index.html: http://developer.android.com/sdk/index.html

[2] Intel HAXM: http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager

[3] Доступ по telnet: http://developer.android.com/tools/devices/emulator.html#console

[4] некоторых других железных параметров: http://developer.android.com/tools/devices/emulator.html#limitations

[5] http://www.genymotion.com/: http://www.genymotion.com/

[6] http://www.android-x86.org/: http://www.android-x86.org/

[7] www.bluestacks.com: http://www.bluestacks.com

[8] Источник: http://habrahabr.ru/post/218739/