Обзор средств запуска и отладки приложений на Android
Разрабатывая свое первое приложение под Android, я столкнулся с проблемой запуска приложения для проверки и отладки. Эта статья должна помочь начинающему пользователю выбрать средство эмуляции.
Содержание:
Android Virtual Device (AVD)
Установка:
Это средство эмуляции встроено в Android SDK.
Настройка:
(на примере использования в Eclipse)
Window > Android SDK and AVD Manager > New
Вписываем имя виртуального устройства, платформу, размер карты памяти, тип дисплея…
Жмем Create AVD.
Запуск:
Первый запуск эмулятор длиться очень долго, особенно на слабых устройствах. Например, я так и не смог дождаться первого запуска на своем нетбуке, а, запуская первый раз на компьютере, был уверен, что эмулятор ушел в вечный цикл.
Последующие запуски эмулятора будут чуть шутрее.
Время между нажатием кнопки «Run» и появлением главного активити тестового приложения на эмуляторе проходит в среднем 11 секунд. Замеры проводил на достаточно производительном компьютере.
Преимущества и недостатки:
+ возможность протестировать приложение на разных версиях ОС Android, на устройствах с разными типами дисплея…
+ различные настройки, необходимые для тестирования, например, смена ориентации экрана
+ эмуляция SD-карты
— большой промежуток времени между нажатием кнопки «Run» и запуском приложения на эмуляторе
— эмулятор работает очень медленно, например, то, что телефон обрабатывал 1-2 секунды, эмулятор делал за 8-10 секунд
VirtualBox+Android x86
Установка и настройка:
- Скачиваем и устанавливаем VirtualBox.
- Скачиваем образ.
- «Создаём виртуальную машину Linux 2.6/Other Linux, 512 Mb RAM, Bridged Network, HD 2 Gb, Disable Mouse Integration. Подключаем ISO файл и загружаемся одной из опций LiveCD (есть вариант HDPI и MDPI)» (с) или следуем этой инструкции.
- Нажимаем Alt-F1 для выхода в консоль и набираем netcfg и запоминаем IP адрес эмулятора. Для возврата к GUI, нажимаем Alt-F7.
- adb connect
Запуск:
Время между нажатием кнопки «Run» и появлением главного активити тестового приложения на эмуляторе не засекал, но, по субъективным ощущениям, это происходит почти мгновенно.
Преимущества и недостатки:
+ маленький промежуток времени между нажатием кнопки «Run» и запуском приложения на эмуляторе
+ местами шустрая работа
— достаточно длительная и иногда проблематичная установка
— эмулятор работает местами медленно, имеются проблемы с изображением (особенно на MDPI)
— проблемы с эмуляцией SD-карты, сменой ориентацию экрана,…
— только два (три) доступные версии ОС Android и только два доступных типа дисплея
Телефон с ОС Android, подключенный через USB
Установка и настройка:
- Включаем на телефоне режим отладки. (Насторйки > Приложения > Разработка > Отладка по USB).
- Скачиваем драйвер для вашего телефона.
- Подключаем телефон к ПК.
- Устанавливаем драйвера. В Диспетчере устройств должен появиться раздел ADB Interface.
- adb devices. Если ваш телефон не отображается в списке, то переустанавливаем драйвер ADB.
Запуск:
Между нажатием кнопки «Run» и появлением главного активити тестового приложения на телефоне проходит порядка 5 секунд.
Преимущества и недостатки:
+ возможность увидеть приложение так, как его будет видеть пользователь (очень важным момент, особенно при создании интерфейса и дизайна приложения)
+ мультитач (если есть в телефоне)
+ смена ориентации экрана, акселерометр (если есть в телефоне)
— только одна версия ОС и один тип дисплея
— на физическом рабочем столе появиться еще один объект
Выводы:
Я пробовал работать с каждым из этих средств эмуляции и остановился на таком варианте:
1. написание и тестирование приложения, используя телефон;
2. тестирование приложения на многочисленных Android Virtual Device с различными комбинациями версии ОС и типа дисплея.
Надеюсь, что читающий сделал выбор эмулятора или почерпнул для себя что-то новое.
Удачи в тестировании!
Источник
Что делает avd android virtual device
Виртуальное устройство Android (Android Virtual Device, AVD) позволяет разработчику тестировать свои приложения, не имея под рукой телефона с Android. Можно создавать несколько эмуляторов – устройств AVD, с различными видами конфигурации, чтобы эмулировать различные типы реальных телефонов.
Стандартный эмулятор работает достаточно медленно. Если на Вашем ПК установлен процессор Intel с поддержкой технологии виртуализации VT-x (Intel Virtualization Techology for x86 VT-x) (данные параметры устанавливаются в BIOS), то достаточно просто можно повысить его производительность. Для этого необходимо с помощью SDK Manager инсталлировать следующие пакеты:
- Intel x86 Atom System Image
- Intel x86 Emulator Accelerator (HAXM)
Образ Intel x86 Atom System Image будет доступен при создании и настройке конкретного эмулятора.
Далее необходимо установить пакет Intel x86 Emulator Accelerator (HAXM). Он находится здесь \sdk\extras\intel\Hardware_Accelerated_Execution_Manager.
Установка Intel HAXM
В процессе установки вам предложат определить объем выделяемой оперативной памяти. Вы можете оставить значение, предложенное по умолчанию. Если в процессе работы вы захотите изменить это значение – запустите установку еще раз.
Если режим не включен или не поддерживается, то появится окно сообщения:
В этом случае проверьте настройки в BIOS, возможно виртуализация поддерживается вашей системой, но по умолчанию отключена.
Размеры и разрешение экрана
Общие сведения о размерах и разрешении экранов нам понадобятся при создании виртуального устройства. Приведем основные сведения.
Существует 4 диапазона размеров экранов:
small — QVGA (320×426 dp)
normal — HVGA (320×470 dp)
large — VGA (480×640 dp)
xlarge — HVGA (720×960 dp), доступно с API 9 (Android 2.3)
и следующие диапазоны плотностей экранов:
Плотность пикселей на дюйм | Соотношение dp к px |
ldpi — 120dpi | 1 dp = 3/4 px |
mdpi — 160dpi | 1 dp = 1 px |
hdpi — 240dpi | 1 dp = 1.5 px |
xdpi — 320dpi | 1 dp = 2 px |
xxdpi — 480dpi (с API 16, Android 4.1) | 1 dp = 3 px |
xxxdpi — 640dpi (с API 18, Android 4.3) | 1 dp = 4 px |
nodpi — «как есть» | |
tvdpi — 1.33 * mdpi | 1 dp = 1.33 px |
Вот несколько примеров:
- QVGA (Quarter Video Graphics Array) 240×320 dp – низкая плотность, размер 2-3,5″;
- WQVGA (Wide Quarter Video Graphics Array) 240×400 dp – низкая плотность, размер 2-3,5″;
- HVGA (Half Video Graphics Array) 320×480 dp – средняя плотность, размер 3-4″;
- WVGA800 (Wide Video Graphics Array) 480×800 dp) –высокая плотность, размер 4-7″;
- WVGA854 (Wide Video Graphics Array) 480×854 dp) –высокая плотность, размер 4-7″;
Создание виртуального устройства
После установки образа эмулятора Android для x86 необходимо создать новое виртуальное устройство с помощью Android Virtual Device Manager. Для этого:
- Запускаем ADV Manager. Меню Tools|Android|AVD Manager.
Примечание. Если запустить ADV Manager из папки установки SDK, то появится более простое и знакомое диалоговое окно по IDE Eclipse. - Выбираем создание устройства «+Create Virtual Device«
На этом экране из возможных типов эмуляторов мобильных устройств выбираем тип Phone и переходим к выбору эмулятора модели телефона.
В начале разработки приложения, как правило, наиболее важным параметром эмулятора является скорость его работы, поэтому следует выбрать достаточно простой и быстрый эмулятор. На последующих этапах разработки приложения можно перейти на эмулятор, который наиболее точно моделирует работу реального устройства или использовать реальное устройство. В этой связи для учебных целей выбираем устройство: Nexus One (3.7” 480×800 hdpi) или Nexus S(4.0″480×800 hdpi). Эти эмуляторы требует немного оперативной памяти (500 mb и 375 mb) и поэтому достаточно быстро работают. Следует помнить, что «крутой эмулятор» потребует большие ресурсы ПК, что приводит к медленной его работе, а иногда он может просто не запуститься.
Далее жмём кнопку «Next» и переходим на экран, предлагающий выбрать версию операционной системы для эмулятора.
У Google издавна сложилась традиция называть разрабатываемые версии операционных систем тремя словами:
KitKat — Key Lime Pie(Лаймовый Пирог)
Lollipop — Lemon Meringue Pie(Лимонный Пирог Безе)
MNC — Macadamia Nut Cookie (Печенье из Ореха Макадамия).
Поскольку на ПК, на котором будет запускаться эмулятор, установлен процессор Intel с поддержкой технологии виртуализации VT и используется ОС Windows 7 x86, то выбираем Lollipop уровень API 22, ABI x86, целевая версия Android 5.1.1.
ABI — двоичный интерфейс приложения (Application binary interface)- это образ аппаратной части выбираемой аппаратной платформы создаваемого виртуального устройства. Здесь как раз и следует выбирать x86 образ, который был установлен нами ранее.
Target — целевая версия Android это версия API, на которую ориентировано приложение. Выберем самую новую.
Лучше всегда использовать более новую версию потому, что она содержит более новую версию компилятора и дополнительные проверки, позволяющие в автоматическом режиме находить часто встречающие ошибки. Кроме того:
- использование самой последней версии гарантирует, что у нас корректный и оптимальный код.
- это нас ни как не ограничивает, чтобы поддерживать более старые версии платформы в готовом приложении.
Если необходима поддержка более старых версий, то необходимо перед созданием виртуального устройства скачать и установить соответствующие пакеты (точно так же как описана установка примеров из SDK приведенная выше).
Если мы ошибочно выберем образ системы, который нами не установлен, то будет выдано соответствующее предупреждение : Consider using an x86 system image for better emulator performance (рассмотрите использование образа системы x86 для повышения производительности эмулятора). Соответствующий экран представлен ниже.
Переходим к следующему экрану. Здесь при необходимости можно внести изменения в характеристики создаваемого виртуального устройства.
Обратим внимание на следующие параметры:
AVD Name — Имя устройства. Можно задать какое нравится, рекомендую указывать что-то простое, на латинице, без пробелов, например, имя устройства и номер AIP: Nexus_S_API22.
Startup size and orientation
Scale – позволяет изменить размер эмулятора на экране монитора.
Orientation — позволяет задать книжную или альбомную ориентацию
Emulated performance — производительность эмулятора.
Use Host GPU — использование аппаратного ускорения графики при работе эмулятора. Рекомендуется включить данную опцию — так графика в эмуляторе будет работать быстрее.
Snapshot — снимок системы — при включении этой опции эмулятор виртуального устройства будет сохранять свое состояние при рестарте, т.е. после включения (загрузки) получаем устройство в том же состоянии как перед выключением (выгрузкой) эмулятора. Данную опцию пока трогать не будем, оставим ее в выключенном состоянии.
Camera — камера
Front Back — включение эмуляции камер (фронтальной и основной), при желании можно вывести через них картинку с web-камеры. Оставим значения по умолчанию — None, так как в простых учебных примерах камеры практически не применяются, а «боевые» приложения, использующие «сложные» аппаратные возможности надежнее отлаживать на реальных устройствах.
Memory and Storage — опции памяти и внутреннего хранилища.
Здесь указывается, сколько оперативной (RAM) памяти будет доступно в эмуляторе, а так же размер VM Heap — количество доступной памяти для одного экземпляра приложения. Рекомендуется эти значения указывать исходя из ресурсов реальных устройств, поэтому оставим значения по умолчанию (512 и 32). Однако, при увеличении этих параметров приложение в эмуляторе будет работать быстрее, но следует помнить что вы разрабатываете приложение для реального устройства, где объем оперативной памяти жестко задан производителем устройства и поменять его невозможно.
Internal Storage — внутреннее хранилище. Здесь указывается объем внутреннего устройство хранения, опять таки — указывайте значение, которое возможно на реальном устройстве.
SD Card — SD карта. Здесь, если требуется, можно указать параметры используемой виртуальной SD карты памяти (которые используются на реальных устройствах повсеместно, для расширения внутреннего хранилища). Оставим поле Size (размер) пустым — пока что не будем использовать SD карту. Для удобства программиста здесь же можно указать готовый образ SD карты в файле, если такая необходимость есть.
Frame Frame – имитировать ли внешний вид реального устройства.
Skin — скин эмулятора. Включение отображения аппаратных элементов управления в окне эмулятора (hardware buttons). Так же воспользуемся данным пунктом, что бы видеть кнопки устройства в окне эмулятора.
Keyboard — клавиатура. Включение представления аппаратной клавиатуры (hardware keyboard). Воспользуемся данным пунктом.
Теперь осталось запустить и проверить все ли настроено верно. Выбираем созданный эмулятор и запускаем его кнопкой «Start”.
Далее идем в настройки и выполняем следующие действия:
- Устанавливаем русский язык
- Проверяем работает ли эмулятор в режиме поддержки технологии виртуализации ( образ x86)
Если все было сделано правильно, то для нашего примера, в поле «Модель» мы увидим строку «Android SDK Build for x86«.
Источник