Top.Mail.Ru

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

android studio emulyatorВиртуальное устройство 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)

sdk menedger

Образ Intel x86 Atom System Image будет доступен при создании и настройке конкретного эмулятора

obraz

Далее необходимо установить пакет Intel x86 Emulator Accelerator (HAXM). Он находится здесь \sdk\extras\intel\Hardware_Accelerated_Execution_Manager.

Установка Intel HAXM

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

pamyat

Если режим не включен или не поддерживается, то появится окно сообщения: 

error

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

Размеры и разрешение экрана

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

Существует 4 диапазона размеров экранов:

small - QVGA (320x426 dp)

normal - HVGA (320x470 dp)

large - VGA (480x640 dp)

xlarge -  HVGA (720x960 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) 240x320 dp – низкая плотность, размер 2-3,5″;
  • WQVGA (Wide Quarter Video Graphics Array) 240x400 dp – низкая плотность, размер 2-3,5″;
  • HVGA (Half Video Graphics Array) 320x480 dp – средняя плотность, размер 3-4″;
  • WVGA800 (Wide Video Graphics Array) 480x800 dp) –высокая плотность, размер 4-7″;
  • WVGA854 (Wide Video Graphics Array) 480x854 dp) –высокая плотность, размер 4-7″;

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

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

  1. Запускаем ADV Manager. Меню Tools|Android|AVD Manager.
    Примечание. Если запустить ADV Manager из папки установки SDK, то появится более простое и знакомое диалоговое окно по IDE Eclipse.
  2. Выбираем создание устройства "+Create Virtual Device"

sozd ustr

tip usrt

На этом экране из возможных  типов эмуляторов мобильных устройств выбираем тип Phone  и переходим к выбору эмулятора модели телефона.

В начале разработки  приложения, как правило, наиболее важным параметром эмулятора является скорость его работы, поэтому  следует выбрать достаточно простой и быстрый эмулятор.  На последующих этапах разработки приложения можно перейти на эмулятор, который наиболее  точно моделирует работу реального устройства  или использовать реальное устройство. В этой связи для учебных целей выбираем устройство: Nexus One (3.7” 480x800 hdpi) или  Nexus S(4.0"480x800 hdpi). Эти эмуляторы требует немного оперативной памяти (500 mb и 375 mb) и поэтому достаточно быстро работают. Следует помнить, что «крутой эмулятор» потребует большие ресурсы ПК, что приводит к медленной его работе, а иногда он может просто не запуститься.   

Далее  жмём  кнопку "Next"  и переходим на экран, предлагающий выбрать версию операционной системы для эмулятора.

versiya usrtoistva

У Google издавна сложилась традиция называть разрабатываемые версии операционных систем тремя словами:

KitKat - Key Lime Pie(Лаймовый Пирог)

Lollipop - Lemon Meringue Pie(Лимонный Пирог Безе)

MNC - Macadamia Nut Cookie (Печенье из Ореха Макадамия). 

lollipop

Поскольку на  ПК, на котором будет запускаться эмулятор, установлен процессор 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  для повышения производительности эмулятора). Соответствующий экран представлен ниже. 

lollipop error

Переходим к следующему экрану. Здесь при необходимости можно внести изменения в характеристики создаваемого виртуального устройства. 

harakteristiki ustroistva

parameti ustroistva

Обратим внимание на следующие параметры:

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). Воспользуемся данным пунктом.

 nastriki ustroistva

Теперь осталось запустить и проверить все ли настроено верно. Выбираем созданный эмулятор и запускаем его кнопкой "Start”. 

ustroistvo

Далее  идем в настройки  и выполняем следующие действия:

  • Устанавливаем  русский язык
  • Проверяем работает ли эмулятор в режиме поддержки технологии виртуализации ( образ x86)

Если все было сделано правильно, то для нашего примера, в поле "Модель" мы увидим строку "Android SDK Build for x86". 

model ustroistva