Android эмулятор для android studio: Урок 1. Установка Android Studio, создание эмулятора, Hello World – Эмуляторы в Android | Android Tools

Содержание

Урок 1. Установка Android Studio, создание эмулятора, Hello World

Facebook

Twitter

Вконтакте

Google+

Какую IDE выбрать для Android?

Некоторое время назад официальной IDE для Android был Eclipse (как стандарт де-факто для Java) с плагином ADT. Некоторое время спустя среди Java-программистов начала набирать популярность IDE от JetBrains, потом для нее появился плагин для разработки под Android, и народ начал потихоньку переходить на нее с Eclipse.

Еще чуть позже Google объявляет о том, что будет делать Android Studio на базе IDEA. И вот на подходе уже вторая версия Android Studio, и Eclipse вспоминается разве что как страшный сон 🙂

Android Studio — официальная среда разработки под Android. По сути, Android Studio — это известная Java IDE IntelliJ IDEA с плагинами.

На данный момент существуют следующие опции при выборе IDE для Android:

  1. Eclipse. Самая популярная какое-то время назад IDE для Java, сейчас использовать ее для разработки под Android крайне не рекомендуется
    .
  2. IntelliJ IDEA. Отличная IDE, хорошо подходит для Android.
  3. Android Studio. Лучшая IDE для Android. От IDEA отличается мелочами, но эти мелочи очень-очень приятны и сильно облегчают наш труд 🙂 Именно на ней мы и остановимся.
Установка Android Studio

В первую очередь, нужно убедиться, что у вас установлен JDK (Java Development Kit). Это обязательный компонент для разработки на Java, а поскольку разработка под Android ведется на Java — то и для разработки под Android тоже.

Скачать JDK можно по этой ссылке (официальный сайт, само собой, JDK бесплатен :)) Выбирайте самый новый JDK, и именно JDK, а не JRE!

Теперь перейдем к

установке Android Studio.

Для начала, Android Studio необходимо скачать. В одном установщике будет все необходимое — сама IDE, Android Emulator, Android SDK. То, чего нет в комплекте, инсталлятор докачает самостоятельно.

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

Установка Android Studio

 

Здесь, как следует из скриншота, установщик спрашивает, куда ставить студию, и куда ставить SDK. Если с самой студией все понятно, то SDK нужно быть внимательным. Как опять же следует из скриншота, для установки SDK нужно

минимум 3.2 GB места на диске. Это минимум, на самом деле, места нужно больше, поскольку через какое-то время вам нужно будет докачивать обновленный SDK. так что, если вы не уверены, что места в будущем хватит — лучше измените местоположение на более вместительный диск.

После этого понадобится стандартно несколько раз нажать на кнопочку «далее», и на этом установка Android Studio завершена.

Настройка Android Studio

При первом запуске Android Studio задаст вам стандартный вопрос об импорте конфигурации:

Импорт Android Studio

 

По умолчанию будет выбран тот же чекбокс, просто нажмите на кнопку «ОК».

После этого Android Studio начнет качать Android SDK. Это может занять некоторое время. Если загрузка завершится неудачей, IDE предложит попробовать еще раз — обязательно нажмите «Retry».

Скачивание Android SDK в Android Studio

 

После окончания загрузки нажмите «Finish».

В принципе, на этом установка закончена, но я бы порекомендовал произвести еще некоторые настройки.

Во-первых, я советую сменить тему на темную («Darcula»).

 

Тема Darcula в Android Studio

По началу раз светлый текст на темном фоне может показаться вам непривычным, но поверьте — для глаз так намного легче. Разве что в темное время суток при Alt-Tab’е на «светлый» браузер смена фона будет резать глаза, но для того, чтобы этого не было, я рекомендую поставить замечательную программку f.lux.

Во-вторых, поставьте галочки «show line numbers» и «show method separators»:

 

Настройка Android Studio

Первая будет отображать номера строк слева от текста, вторая — будет рисовать разделители между методами в коде.

Эти две опции невероятно важны, а особенно для новичков, и я не понимаю, почему они выключены по-умолчанию.

В-третьих, настройте автодополнение. Для этого в «Case sensitive completion» выберите «None»:

 

Автодополнение в Android Studio

Поясню, почему именно так. Опция по-умолчанию подразумевает срабатывание автодополнения только в том случае, если первая буква набрана в правильном регистре. Опция None будет вызывать автодополнение независимо от того, в каком регистре вы начали набирать код.

Стандартное значение этой опции, как и прошлых двух, вызывает у меня недоумение.

Создание первого проекта

Что ж, с настройкой и установкой Android Studio мы разобрались, пришло время создать наш первый проект.

В главном окне Android Studio нажмите на «Start a new Android Studio project«:

Главное окно Android Studio

 

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

В первом нужно задать имя приложения, домен компании (из этих двух параметров будет создано имя пакета), и расположение проекта на диске:

Создание проекта Android Studio

 

В Android, как и в Java, основным идентификатором приложения является имя пакета. Если вы ранее работали с Java, вы знаете, что это такое. Тем же, кто не знает, рекомендую гугл, или, например, вот эту статью.

Далее Android Studio спросит нас, какие и каких версий SDK мы хотим использовать. Пока что нам хватит «Phone and Tablet» SDK, версию API поставьте 16 вместо рекомендуемой 15-й, поскольку API 15 уже неактуально и совсем не распространено:

Создание проекта Android Studio

 

На следующем экране нас спросят, какие компоненты приложения мы хотим создать. Выберите «Empty Activity»:

Создание проекта Android Studio

 

На следующем шаге просто нажмите «Finish», ничего не меняя.

Далее, нам придется подождать некоторое время (от минуты до пяти минут, в зависимости от мощности вашего компьютера), пока Android Studio создает проект.

По завершению этого процесса вы увидите, наконец-то, свой первый проект:

Hello World Android Studio

 

Он уже вполне работоспособен, но чтобы его запустить, нам понадобится эмулятор Android.

Создание эмулятора Android

Для создания эмулятора Android нам понадобится Android AVD Manager (AVD = Android Virtual Device). Не беспокойтесь, ставить больше ничего не потребуется. Просто нажмите на эту кнопочку:

Android Studio AVD Manager

 

Потом на эту кнопочку:

Android Studio AVD Manager

 

А потом просто несколько раз кликните «Next» и, наконец, «Finish»

Запуск Hello World

Пришло время запустить наш первый проект, созданный в Android Studio!

Нажмите на вот эту кнопку (или Shift-F10):

Запуск приложения в Android Studio

 

После этого вы увидите диалог, в котором вам будет предложено выбрать девайс, на котором IDE должна запустить собранное приложение:

Выбор устройства в Android Studio

 

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

На это уйдет некоторое время (чем мощнее ваш компьютер — тем меньше времени понадобится), поскольку эмулятор — вещь достаточно медлительная, несмотря на колоссальные улучшения в последние пару лет.

И вот, по прошествии 1-10 минут (после запуска эмулятора проекты, конечно же, будут собираться и запускаться быстрее), вы, наконец, увидите свой Hello World на экране эмулятора!

 

Hello World Android Emulator

На этом все, а в следующем уроке мы рассмотрим структуру Android-проекта и систему сборки Gradle.


Новые уроки добавляются каждый день! Чтобы ничего не пропустить, подпишитесь на нашу группу ВКонтакте, или на рассылку по e-mail (обещаем, спама не будет. честно.)

Facebook

Twitter

Вконтакте

Google+

Эмуляторы в Android | Android Tools

Post Views: 13 603

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

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

Главным преимуществом эмулятора при тестировании является то, что он даёт мгновенный доступ к любой версии Android или любому устройству, на котором нужно проверить работу приложения. Кроме того, разработчику не нужно волноваться по поводу того, что эмулятор перестанет корректно работать — в этом случае достаточно будет просто сбросить его до базовых параметров.

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

В этой статье мы рассмотрим, как работать с родным эмулятором от Android Studio, а также рассмотрим несколько сторонних эмуляторов.

Эмулятор Android от Google на протяжении этих лет прошёл долгий путь. Когда-то он был проклятием в жизни разработчика, демонстрируя самые главные недостатки среды разработки. Безумно медленный инструмент с огромным нереализованным потенциалом, призванным улучшить жизнь разработчика.

Но за последние годы Google сильно потрудился над своим эмулятором и превратил его в один из лучших инструментов для разработки: быстрый, гибкий и полезный при тестировании и отладке приложений.

Эмулятор Android может имитировать работу смартфона, планшета, часов Wear OS и устройств Android TV. Он содержит в себе конфигурации популярных типов устройств и работает быстрее, чем реальное устройство, подключенное по USB.

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

  • Bluetooth
  • NFC
  • Работу с SD-картой
  • Работу с наушниками
  • USB

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

Примечание: что касается эмулятора Wear OS, то он не поддерживает кнопку Обзор (Последние приложения), D-pad и датчик отпечатков пальцев.

Каждый экземпляр эмулятора использует AVD (Android Virtual Device). AVD — это конфигурация, которая определяет характеристики устройства, который нужно эмулировать: форм-фактор, версию Android и различные характеристики. Он содержит следующие компоненты:

  • Профиль устройства
    Профиль устройства определяет характеристики устройства, которое нужно эмулировать. Менеджер AVD содержит в себе несколько предустановленных профилей (такие устройства, как Nexus и Pixel), но также позволяет создавать свои собственные. Кроме того, некоторые профили включают Google Play, такие профили полностью совместимы с CTS и позволяют использовать образы системы с установленным приложением Google Play.
  • Образ системы
    Содержит нужную версию Android. Для полноты тестирования лучше всего создавать AVD для каждой версии Android, которую поддерживает приложение. Некоторые образы системы помечены надписью Google APIs: это означает, что они включают в себя доступ к сервисам Google Play. Если же образы помечены как Google Play, то кроме сервисов Google Play они включают также само приложение Google Play.
  • Область хранения
    AVD имеет специальную область хранения на компьютере. В ней хранятся пользовательские данные, данные устройства, такие как установленные приложения и настройки, а также эмулированная SD-карта. Если есть такая необходимость, с помошью Менеджера AVD можно удалять с эмулятора пользовательские данные, приводя ему к «заводскому» виду.
  • Скин
    Скин нужен для того, чтобы задать устройству внешний вид. Менеджер AVD содержит несколько предустановленных скинов, также имеется возможность использовать сторонние скины.

Для того, чтобы создать новый AVD, нужно запустить AVD Manager. Для этого нужно в Android Studio в меню выбрать Tools — AVD Manager. Откроется окно менеджера, в котором будет отображаться список созданных эмуляторов.

Чтобы создать новый эмулятор, нужно нажать на Create Virtual Device в Менеджере AVD. Откроется окно, в котором будет предложено выбрать тип устройства и профиль.

После того, как будет выбран профиль, нужно нажать на Next для перехода далее. Здесь нужно выбрать, какой образ системы использовать.

На вкладке Recommended перечислены рекомендуемые образы системы. Другие вкладки содержат более полный список доступных образов. Справа приводится информация о выбранном образе (уровень API, версия).

Примечание: образы x86 работают на эмуляторе быстрее всего.

Уровень API важен, поскольку если он будет меньше, чем тот, что указан в манифесте приложения, приложение не будет установлено на этот эмулятор.

Если образ ранее не был скачан, рядом с названием появится кнопка Download, нажатие на которую начнёт процесс скачивания. Для скачивания образа потребуется доступ к Интернету.

Чтобы перейти на следующий этап, нужно нажать Next. В новом окне будет предложено изменить дополнительные свойства AVD (название AVD, ориентацию экрана).

После нажатия на Show Advanced Settings откроются дополнительные настройки, в которых можно изменить следующее:

  • Фронтальную/основную камеру. Вместо эмуляции изображения есть возможность использовать в качестве камеру подключённую вебкамеру.
  • Скорость и качество интернет-соединения.
  • Способ загрузки. Если выбрать Quick Boot, то эмулятор будет сохранять текущее состояние при выключении и загружать его при включении. Cold Boot — холодный старт.
  • Количество выделенной оперативной памяти и места на диске.
  • Включение\отключение внешнего вида эмулятора.
  • Включение\отключение ввода с клавиатуры.

Важно! Использование Quick Boot может сильно замедлить работу компьютера, если у него будет недостаточно свободной оперативной памяти для загрузки-сохранения данных. В этом случае лучше использовать Cold Boot.

После того, как AVD будет настроен, останется только нажать Finish. После этого созданный AVD можно будет увидеть в окне Менеджера AVD.

Если нужно будет изменить настройки AVD, это легко можно сделать, нажав на кнопку Edit рядом с нужным эмулятором в списке Менеджера AVD.

Чтобы запустить эмулятор, достаточно в Менеджере AVD нажать на кнопку Run.

Протестировать приложение на эмуляторе можно, нажав на кнопку Run в Android Studio.

Откроется окно Select Deployment Target, в котором будет предложено выбрать, на каком устройстве нужно запустить приложение.

После нажатия OK начнётся запуск выбранного эмулятора, если он не до сих пор запущён, либо установка APK на эмулятор.

Примечание: также установить приложение на эмулятор можно, просто перетащить APK-файл на экран эмулятора.

Эмулятор Android позволяет тестировать самые разные функции. Их можно настроить, нажав на кнопку Extended Controls в меню рядом с эмулятором.

Откроется окно с настройками, разбитыми на различные категории. Здесь можно настроить отправку данных, различные свойства устройства и так далее. Рассмотрим некоторые из категорий.

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

Вкладка Cellular содержит параметры, регулирующие качество связи и мобильного интернета. Например, можно настроить тип сети, выбрав LTE, GPRS или другие варианты, силу сигнала и домашний регион/роуминг.

На вкладке Battery можно установить уровень заряда батареи и её состояние (заряжается, разряжается и так далее).

Вкладка Phone позволяет симулировать входящие звонки и смс-сообщения.

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

Аналогичным образом можно отправить текстовое сообщение, введя текст сообщения в поле SMS Message и нажав Send Message.

Вкладка Directional pad представляет собой дополнительный набор элементов управления, встроенных в устройство или подключенных внешне, который обеспечивает управление направлением (вверх, вниз, вправо, влево).

На вкладке Fingerprnt можно симулировать использование датчика отпечатков. На выбор предлагается несколько предустановленных отпечатков пальцев для различных тестов. Чтобы сообщить датчику о том, что пользователь прикладывает палец, нужно нажать на кнопку Touch the sensor.

Вкладка Virtual sensors отвечает за симуляцию работы различных датчиков, таких как гироскоп, акселерометр и магнитометр.

С их помощью можно тестировать приложение на предмет изменения положения устройства в пространстве, ориентации или того и другого. Эмулятор имитирует способ реагирования датчиков акселерометра и магнитометра при перемещении или повороте реального устройства.

Кроме того, на вкладке Additional sensors находятся различные датчики положения и окружения. На этой вкладке можно настроить следующее:

  • Температура окружающей среды
    Имитирует температуру воздуха.
  • Магнитное поле
    Имитирует изменение окружающего магнитного поля, значения указываются в микротеслах (мкТ).
  • Близость
    Определяет расстояние до какого-либо объекта.
  • Свет
    Имитирует изменение уровня освещённости, измеряется в люксах.
  • Давление
    Измеряет давление окружающего воздуха, значения указаны в миллибар.
  • Относительная влажность
    Изменяет собственно относительную влажность окружающей среды.

Что касается остальных пунктов меню эмулятора, то они вкратце перечислены ниже.

  1. Кнопка включания/выключения экрана. При удерживании включает/выключает устройство.
  2. Кнопка увеличения громкости
  3. Кнопка уменьшения громкости
  4. Поворот экрана  налево
  5. Поворот экрана направо
  6. Создание скриншота экрана. По умолчанию, скриншот сохраняется на рабочий стол и имеет название Screenshot_yyyymmdd-hhmmss.png.
  7. Изменяет курсор на лупу. Клик левой кнопкой мыши по экрану увеличивает масштаб на 25%, правой кнопкой мыши — уменьшает. Для возврата из режима нужно повторнго нажать на кнопку.
  8. Возвращает к предыдущему экрану либо закрывает диалоговое окно, меню опций, панель уведомлений или экранную клавиатуру.
  9. Возвращает на домашний экран.
  10. Открывает список недавних приложений.

Вот всё основное, что можно сказать о том, какие возможности предоставляет встроенный эмулятор Android Studio. Функционал весьма богат и позволяет тестировать самые разные возможности приложений.

Genymotion

Genymotion является одним из самых популярных эмуляторов Android за счёт своего быстродействия и развития разработчиками. Этот проект был развит из AndroidVM и на данный момент обзавёлся большим количеством улучшений.

Genymotion, аналогично эмулятору Android Studio, обладает большим количеством возможностей. К недостаткам же можно отнести то, что он является платным, для ознакомления на сайте доступна 30-дневная триал-версия. Также стоит отметить, что для работы Genymotion нужно, чтобы на компьютере был установлен Oracle VM VirtualBox.

Регистрация на сайте, а также скачивание и установка достаточно просты, поэтому здесь не имеет смысла останавливаться. При запуске Genymotion появляется окно с пустым списком эмуляторов.

Для создания нового эмулятора нужно нажать Add.

Здесь будет представлен список заготовленных образов и конфигураций устройств. Причём список весьма богат и включает в себя устройства Motorola, Sony, Samsung и другие.

Когда нужная конфигурация выбрана, нужно нажать Next. На следующем экране будет показана суммарная информация о выбранной конфигурации, а также будет предложено дать название эмулятору.

После нажатия на Next начнётся скачивание образа выбранной версии Android и создание эмулятора. Как только всё будет завершено, останется только нажать на Finish.

После создания эмулятор будет отображаться в списке на основном окне.

Чтобы запустить эмулятор, нужно выбрать нужную конфигурацию и нажать Start. В результате откроется окно с эмулятором и меню управления.

Как можно видеть, в триал-версии не все особенности поддерживаются, активны только следующие:

  • Battery
    В этом окне можно настраивать уровень заряда, заряжается ли батарея или нет.

    Например, можно выставить низкий заряд батареи, после чего на эмулятор сразу придёт уведомление о низком уровне заряда.
  • GPS
    Здесь можно включить определение местонахождения устройства по геоданным. Можно ввести все координаты (широту, долготу, высоту) и нажать Map, после чего на карте будут показаны введённые координаты. Или наоборот, можно кликнуть по точке на карте и в окне GPS отобразятся координаты этой точки.
  • Camera
    В этом окне можно включить симуляцию камеры. При этом можно выбрать, что использовать для отображения камеры. Также в окне Preview будет показано, как всё это будет выглядеть.

Таким образом, Genymotion предлагает неплохой и удобный функционал по работе с приложениями, однако полный его потенциал раскрывается в коммерческой версии.

Комфортная работа с Android Studio / Habr


Всем доброго времени суток!

Насколько производительно работает Android Studio? Считаете ли Вы, что она работает шустро на Вашем ПК или Mac? Или, иногда, сталкиваетесь с лагами или долгой сборкой? А на крупных проектах?

В любом случае, всем нам хочется получать максимальную производительность от железа и софта. Потому я подготовил перечень пунктов и советов для начинающих и опытных разработчиков, которые помогут Вам комфортно работать с крупными проектами или просто поднять производительность. Так же Вы поймете, нужен ли Вашему оборудованию апгрейд.

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


Мотивация

Android Studio была неповоротливой еще во времена перехода с Eclipse. И уже тогда я начал искать способы оптимизации работы этой IDE. Однако, большинство коллег относилось к этому «никак». Работает. Не всегда быстро. И ладно.

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

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

DISCLAIMER! Все упомянутые в статье модели и бренды не являются рекламой!


Железо

Вот что сказано о железе на официальном сайте Android Studio в графе System requirements (не считая дискового пространства):

3 GB RAM minimum, 8 GB RAM recommended; plus 1 GB for the Android Emulator
1280x800 minimum screen resolution

Этого достаточно, чтобы студия просто запустилась и работала. О каких либо производительности и комфорте здесь речи не идет.

В этой главе я расскажу о том, какое железо желательно иметь для комфортной работы с крупными проектами и что может стать «бутылочным горлышком» в Вашей системе.

Здесь для нас наиболее критичны 5 параметров:


  • Производительность CPU
  • Количество аппаратных потоков CPU
  • Количество оперативной памяти
  • Скорость произвольного чтения и произвольной записи дисковой подсистемы
  • Скорость мелкоблочного чтения и мелкоблочной записи дисковой подсистемы

Поскольку я чаще работал на конфигурациях на базе продукции Intel, то далее речь пойдет о них. Однако, если у Вас AMD- просто при прочтении делайте для себя поправки на аналогичные технологии «красных». Единственный минус, с которым я сталкивался на AMD, уже был описан на Хабре.


Пара слов о Mac

Существует мнение, что Mac является лучшей машиной для разработки. Чаще так говорят о MacBook Pro.

Лично я считаю это мифом. С приходом технологии NVMe Mac растерял свою «магию». Так что сегодня, даже среди ноутбуков, Mac не является лидером по соотношению цена-качество-производительность. Особенно в контексте разработки под Android Studio.

В остальном для комфортной разработки имеет смысл MacBook Pro 2015 или 2016 года не с U-процессором. Об остальных характеристиках и обслуживании читайте ниже.


Процессор

По производительности процессора- очевидно и понятно. Чем она выше- тем лучше. Единственное, что нужно отметить- при наличии достаточно быстрого накопителя, слабый процессор станет «бутылочным горлышком» в Вашей системе. Особенно критично в случае NVMe-накопителя. Часто, при работе с ним, упор идет именно в мощности CPU.

С потоками всё немного сложнее. Читал о том, что пользователи снижают приоритет студии и ее подпроцессов, чтобы ОС «не зависала» во время сборки. Причина здесь одна- 1-2 аппаратных потока. Этого мало не только для IDE, но и для современной ОС. Единственное «но»- на моей практике были ситуации, когда двухъядерные U-процессоры с Hyper Threading (то есть 2 ядра на 4 потока) нормально работали с относительно мелкими проектами, но на крупных начинались вышеперечисленные проблемы.

Само собой, наличие аппаратной виртуализации обязательно.

Потому рекомендую смотреть в сторону Core i5 HQ Skylake c 4+ потоками и мощнее.


Оперативная память

По поводу стандартов- DDR3 и выше. Тут, думаю, понятно.

Если есть возможность работы в 2х или 4х-канальном режиме и у Вас они не активны- настоятельно рекомендую задействовать, так как можно получить существенную прибавку к отзывчивости IDE. Активируется эта возможность либо в настройках BIOS\UEFI, либо установкой дополнительных модулей оперативной памяти (если у Вас до сих пор один модуль).

Какой нужен объем? Для мелких (действительно мелких) проектов хватает 4ГБ. На проектах крупнее студия способна быстро занять 4ГБ памяти и больше. Добавим сюда эмулятор на HAXM (скажем 2 ГБ) и учтем, что современная ОС (за исключением некоторых дистрибутивов Linux) занимает в памяти около 2ГБ- и вот получается, что 8ГБ уже «впритык».

Это без учета, например, Slack (который занимает в среднем около 500 мб в памяти) и Chrome (там счет идет на гигабайты).

В целом, при 8ГБ оперативной памяти работать быстро и комфортно можно- спасает быстрый накопитель и swap\файл подкачки. Но стоит задуматься об апгрейде.

Потому компания закупает новые, либо предоставляет апгрейд текущих рабочих машин на 12ГБ RAM и более.


SSD

Дисковая подсистема является самым частым «бутылочным горлышком», потому на нее надо обращать внимание в первую очередь.

Работа с Android Studio на HDD в 2018 году сравнима с мучениями- чем больше проект, тем больше фризов Вам обеспечено. Потому, очевидно, использовать только SSD.

Как было упомянуто выше, здесь два критичных параметра:


  • Скорость произвольного чтения и произвольной записи дисковой подсистемы
  • Скорость мелкоблочного чтения и мелкоблочной записи дисковой подсистемы

Чем они выше- тем отзывчивее будет студия, и тем быстрее она будет загружаться и производить сборку.

Обращаю Ваше внимание, что о скоростях линейного чтения\записи речи не идет- для студии это не критично. Потому, при выборе накопителя, нужно смотреть не на его скорость чтения\записи на сайте производителя или магазина, а на количество IOPS (чем больше- тем лучше).

Само собой, здесь не идет речи о Mac, так как там накопитель либо имеет собственный стандарт либо просто распаян на плате. Замена возможна, разве что, на больший объем. Скоростные характеристики здесь поднять вряд ли получится.


NVMe

Если Вашей материнской платой поддерживается технология NVMe — то лучше использовать накопитель с ее поддержкой. Она позволяет получить скорости, сравнимые с SSD на Mac и выше.

При наличии скоростного накопителя, упор идет на шину PCIe и мощности Вашего CPU. Потому, если, например, Ваша материнская плата поддерживает вывод на накопитель PCIe 2.0×4\3.0×2 или у Вас не очень мощный CPU- не стоит покупать очень дорогой накопитель. Смотрите на возможности Вашей системы и толщину Вашего кошелька.


SATA3

Да, SATA3 живее всех живых. И на нем можно быстро работать на студии.

В этом сегменте скоростные накопители более доступны, потому имеет смысл сразу смотреть на топовые решения объемом 120 GB и выше.


Intel Optane

Использовать Android Studio на машине с данным накопителем (если его так можно назвать) мне не приходилось. Если у кого-то есть опыт- пишите в комментарии.


GPU

Тут много говорить не нужно.
Если пишете обычные пользовательские приложения- для самой студии и эмулятора чего-то вроде Intel HD 500 Series хватит за глаза.

Если Вы разрабатываете игры или это- Ваша личная машина, то имеет смысл дискретная графика. Какая- смотрите по Вашим потребностям.


Система охлаждения и троттлинг

Здесь речь не о апгрейде, а о обслуживании.

Большинству из нас известно такое явление, как троттлинг. Его реализацию применяют для защиты от перегрева.

Само собой, троттлинг ведет к понижению производительности. Не всегда заметному. В одних случаях работа Turbo Boost снижается до минимальных значений, в других начинается падение максимальных частот процессора. Причина- недостаточно эффективная работа системы охлаждения. Так же важно понимать, что большинство стресс-тестов (вроде AIDA) диагностируют штатную работу Turbo Boost как троттлинг.

В случае десктопных PC всё давно есть в сети. В случае мобильных систем, основанных на тепловых трубках, много противоречивой информации. Сюда относятся большинство ноутбуков, неттопов, MacBook и iMac. Далее речь пойдет именно о них.

На современных мощных мобильных CPU 80-90 градусов на кристалле под нагрузкой- это норма. При этом SOC с этими CPU имеют конструкцию с открытым кристаллом, от того площадь теплопередачи небольшая. Вся эта куча тепла отводится вот этим посмешищем подобной конструкцией с небольшим закрытым жидкостным контуром.


Современная мобильная система охлаждения

Нужно понимать, что такие системы охлаждения испытывают бОльшие нагрузки и нуждаются в более частом обслуживании. Особенно в случае ноутбуков и MacBook- при переноске от вибраций слой засохшей термопасты разрушается быстрее. А несвоевременное обслуживание чревато не только потерей производительности, но и протечкой термотрубок и «отвалами» кристаллов.

Обслуживание заключается в замене термопасты и чистке радиатора раз в полгода-год после окончания гарантийного срока. Во всяком случае, у нас так и поступают.

Из-за маленькой площади кристалла имеет смысл использовать диэлектрическую термопасту с высокой теплопроводностью (такая стоит в районе 800-1000 р за грамм). Ни в коем случае не используйте жидкий металл! Иначе отделить кристалл от пластины Вы, скорее всего, уже не сможете!

Если у Вас не хватает навыков для данной процедуры- лучше обратитесь в сервис.


Аппаратные настройки

В этой главе речь пойдет о функциях и настройках оборудования. Многое, скорее всего, Вам уже знакомо.


Intel Hyper Threading

Это технология Intel, которая разделяет аппаратный поток ядра на два «виртуальных». Благодаря ей система видит 4-ядерный процессор как 8-ядерный. Такой подход позволяет эффективно утилизировать процессорные мощности. Аналогичная технология есть и у AMD.

Часто сталкиваюсь с тем, что у многих разработчиков эта функция отключена и они вообще о ней не знают. Однако, ее включение может повысить отзывчивость студии и производительность сборки. В отдельных случаях на 10-15%.

Включается она в настройках BIOS\UEFI Вашей материнской платы или ноутбука. Называется пункт аналогичным или похожим образом. Если Вы еще не знали о этой технологии- то имеет смысл проверить ее наличие и включить если этого не было сделано.


Intel Turbo Boost

Еще одна широко известная технология. По факту является автоматическим кратковременным разгоном CPU и дает существенный прирост при сборке. И, в то же время, имеет свойство раскалять мобильные процессоры до температур, не далеких от Tjunction.

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

Включаться она может как BIOS\UEFI, так и в настройках ОС.


Intel Rapid Storage

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

Могу порекомендовать только своевременно обновлять драйверы для этой технологии до самой свежей версии с официального сайта Intel. Даже если производитель Вашего ноутбука поставляет Вам драйверы более старых версий.

В моем конкретном случае, обновление с версии драйвера от производителя до актуальной, повысило скорость линейной записи примерно на 30%, а произвольной- на 15%.

Как устанавливать и обновлять драйверы IRST на Linux- я не знаю (и вообще, возможно ли это?). Если кто знает- пишите в комментарии, я с удовольствием дополню статью.


SSD Secure Erase

Производительность недорогих моделей SSD может со временем падать. Это не всегда происходит из-за «деградации» накопителя. Возможно, в Вашей модели TRIM реализован не очень эффективно.

Secure Erase заставит контроллер пометить все ячейки памяти пустыми, что, теоретически, должно вернуть производительность SSD к заводскому состоянию. И, также, сотрет все Ваши данные! Будьте аккуратны, делайте бекапы!

Осуществить процедуру можно с помощью фирменной утилиты от производителя. В случае, если Ваш диск- системный, то Вам понадобится флешка, которую утилита сделает загрузочной. Далее следуйте инструкциям.

На одном из этапов, возможно, накопитель придется переподключить прямо во время работы. Потому, в случае M.2 очень желательно наличие переходника.

Использовать сторонние утилиты для этой операции крайне не рекомендуется.

Впрочем, если Ваш SSD существенно потерял в скорости за время менее года- лучше поменять накопитель на другую модель.


Аппаратная виртуализация

Эта технология необходима для быстрой работы x86-эмулятора. Если у Вас она отключена- включите ее в настройках BIOS\UEFI. У разных вендоров могут быть разные названия настроек.

Да, мы все знаем про Genymotion и BlueStacks, которые прекрасно обходятся без аппаратной виртуализации. Однако, в образах этих эмуляторов некоторые или многие реализации Android API сильно изменены с целью увеличения скорости работы. Это может провоцировать поведение, которое Вы никогда не встретите на реальном устройстве. Или при отладке Вы можете упустить пару багов. Потому наличие рабочего и шустрого AVD крайне желательно.


ОС и Сторонний софт

В этой главе речь пойдет о возможной настройке ОС и установке стороннего софта с целью увеличения производительности.


Индексация

Здесь речь пойдет о поиске Windows и Spotlight на Mac OS. Эти механизмы могут отнимать до 15% мощностей CPU при сборке поскольку пытаются индексировать всё, что генерируется в /build.

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


  • Директория SDK
  • Директория студии
  • Директория проектов (крайне рекомендуется)
  • ~/.gradle
  • ~/.android
  • ~/Android StudioX.X
  • ~/lldb
  • Директория кеша Kotlin

Антивирус

Знаю, не у всех в среде разработки принято использовать антивирус. Но многие его используют. В том числе, иногда, на Linux и Mac OS. И его использование совершенно оправдано.

Даже если у Вас Windows 10 и нет антивируса- его функции выполняет Windows Defender.

При сборке антивирус может отнимать очень существенную долю CPU. Потому все директории, перечисленные в графе «Индексация», следует добавить в исключения антивируса. Также, в исключения имеет смысл добавить имена процессов самой студии и JetBrains JVM.

В зависимости от реализации антивируса, потребление CPU им во время сборки снизится существенно, либо он вообще перестанет потреблять мощности CPU. А время самой сборки заметно уменьшится.


Шифрование диска или домашней директории

Эти функции присутствуют на всех популярных ОС или реализуются сторонним софтом. Само собой, работа студии в шифрованном файловом пространстве может требовать бОльших мощностей CPU. Насколько- зависит от реализации шифрования. Потому рекомендуется такие функции отключать либо совсем, либо, если это возможно, для перечисленных в графе «Индексация» директорий.


А работает ли TRIM?

TRIM может быть реализован как аппаратно, так и программно. В последнем случае обязанность вызова TRIM ложится на ОС. И, по разными причинам, периодический вызов может отключаться, что приводит к падению скорости накопителя.

Проверить работоспособность и возобновить вызовы TRIM можно с помощью специализированных утилит. Рекомендуется использовать утилиты от производителя накопителя.


RAMDisk

Что такое RAMDisk большинству давно известно. Но насколько он эффективен в работе со студией?

По своему опыту скажу- не очень. Разве что Вы перенесете в RAMDisk сам проект, SDK, студию и так далее. Если у вас хватает RAM…

С простым переносом проекта весом в более чем 500 мб (цифра указана с build-кэшем), у меня не получалось добиться прироста более 15%. По всей видимости, тормозятся вызовы к SDK и системным API. В итоге такой прирост обходится достаточно дорого.

Следующий способ существенно эффективнее и обходится куда дешевле.


Кэширование запросов к накопителю

Нечто похожее реализовано в Mac OS. Однако, в сравнении с перечисленными ниже технологиями- не настолько эффективно.

К сожалению, мне известны только две реализации, и обе жестко завязаны на продукцию производителей. Речь о Samsung R.A.P.I.D. и PlexTurbo.

Обе технологии работают по схожим принципам (описываю так, как понял сам):


  • Если был запрос на чтение небольших объемов, то они откладываются в RAM и при повторном чтении берутся уже оттуда. Стандартный RAM cache.
  • Если был запрос на запись небольших данных- они откладываются в RAM-кэш. Далее запросы на запись сравниваются с кэшем. Если Вы повторно пишете одни и те же данные по одним и тем же путям- зачем их повторно записывать аппаратно? И SSD так дольше проживет.

Единственная разница- R.A.P.I.D. использует свободный остаток оперативной памяти в качестве кэша. Меньше остаток- меньше размер кэша, меньше ускорения. PlexTurbo позволяет ограничить максимальный объем кэша и подгружать его с жесткого диска при старте системы.

В случае использовании на SATA 3 можно получить прирост до 50%. При использовании NVMe-накопителя- меньше, но, часто, тоже существенный.

В данный момент у меня в работе Samsung 860 EVO SATA 3. Под спойлером бенчмарки с i7 6700HQ и отключенным Turbo Boost.


860 EVO до включения R.A.P.I.D. и два прогона после

R.A.P.I.D. выключен

Первый прогон

Второй прогон

Наглядно видно, как система начинает кэшировать данные на первом прогоне. Итоговый результат существенно выше показателей SATA 3. Однако, эффективность работы данной технологии больше зависит от мощностей CPU. Что наглядно видно при включении Turbo Boost.


860 EVO + R.A.P.I.D. + Turbo Boost

Синтетика- это, конечно, хорошо. Но это всё работает при чтении\записи повторяющихся мелких файлов. И это- самые частые операции при работе Android Studio.

У меня сейчас в работе проект суммарным с кэшем весом более 700 MB, состоящий из 10 модулей. Один из модулей- собственный кодогенератор на базе kapt с весьма тяжелой логикой. Два NDK-модуля, один из которых ссылается на Boost по внешнему пути. Остальное- тонны Kotlin-кода.

Если сравнить время полного ребилда данного проекта, то результаты следующие:


  • С выключенным R.A.P.I.D. время составило 1m 47s 633ms. Терпимо.
  • С включенным R.A.P.I.D. первый ребилд прошел за 1m 41s 633ms. Укладывается в погрешность.
  • С включенным R.A.P.I.D. второй ребилд прошел за 1m 7s 132m. Вот и прирост. Чуть больше 37%, что существенно. Дальнейшие ребилды показывают еще меньшее время но уже с разницей не более 3-5 секунд от последнего замера. Что несущественно.

В менее длительных процессах прирост в студии заметен сразу.

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


Android Studio

Многие из этих советов взяты отсюда и дополнены моими комментариями. Остальные- результат моих изысканий и опыта.


Обновления

Совет хоть и банальный, но всегда актуальный. Если у Вас не legacy-проект, то, по-возможности, старайтесь держать версии студии и сопутствующих компонентов (таких как Gradle, Android Plugin, Kotlin Plugin) в актуальном состоянии. Google и JetBrains делают много работы в плане оптимизации скорости работы и сборки в новых версиях.

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

В некоторых случаях нужно выполнить File->invalidate caches and restart после отката. Если обновляете саму студию- лучше сделать бекап директории студии и директории настроек. Это актуально в том случае, если Ваш проект содержит какие-либо костыли нестандартные подходы, чувствительные к механизмам сборки или самой студии.


Структура проекта

При возможности, старайтесь выносить большие части Вашего проекта, которые общаются с основным кодом посредством API, в отдельные library-модули. Это позволит задействовать функцию инкрементальной сборки. Она позволит не пересобирать неизмененные модули и, тем самым, существенно сократить время билда.

Однако, не возводите всё в абсолют. Выносите компоненты в модули осмысленно, думайте своей головой.


Instant Run

Совет больше для новичков. Эта функция позволяет подменять байткод и ресурсы в уже установленном приложении «на лету». Само собой это существенно уменьшает время отладочной сборки. В новых версиях студии включена по-умолчанию.

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

Включить и отключить функцию можно в меню Build, Execution, Deployment -> Instant Run флагом Enable Instant Run.


Attach to Process

Тоже совет банальный и для новичков. С удивлением обнаружил, что некоторые джуны (а иногда даже мидлы) об этой функции не знают. Она позволяет подключиться к уже запущенному на устройстве процессу для отладки тем самым пропуская этап сборки.

Потому, если на устройстве актуальный билд и перед отладкой никаких изменений вносить в код не требуется- смело жмем Attach debugger to Android process.


Gradle build configs

При возможности, если на Вашем основном рабочем buildConfig или flavour есть компоненты, которые используются только в release-сборках (например, crashlytics, различные annotation-процессоры или собственные gradle-процедуры)- отключите их для debug или для Вашего отладочного конфига. Как это сделать- можно найти здесь, либо на официальных страницах компонентов, либо просто загуглите.

В случае, если у Вас кастомный buildConfig, то для него следует отключить PNG crunching, так как по-умолчанию эта опция выключена только для debug-конфига. Эта опция применяет компрессию к png при сборке. Отключить ее можно следующим образом:

android {
   buildTypes {
       myConfig {
           crunchPngs false
       }
   }
}

//Для старых версий android plugin
android{
   aaptOptions {
       cruncherEnabled false
   }
}

WebP

Если minimum api level Вашего проекта больше 18, то имеет смысл конвертация изображений в WebP. Этот формат более компактный, быстрее читается и к нему не применяется компрессия во время сборки. Потому конвертация всей растровой графики в проекте рекомендуется всегда. Соответственно, чем больше растра в Вашем проекте- тем меньше время сборки после конвертации.


Параллельная сборка

Если Ваш проект содержит несколько независимых модулей (например, несколько app-модулей), то для него будет актуальной опция Compile independent modules in parallel в Settings->Build, Execution, Deployment -> Compiler. Это позволит более эффективно утилизировать потоки CPU при сборке. Минус- больший heap size и, как следствие, больший расход оперативной памяти.

Так же эту опцию можно включить посредством строчки в gradle.properties

org.gradle.parallel=true


Gradle daemon

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

Данная опция позволяет держать отдельный инстанс jvm и gradle в оперативной памяти в течении трех часов с момента последней сборки. Таким образом не тратится время на их инициализацию и наращивание кучи. Минус- больший расход оперативной памяти. Включается строчкой в gradle.properties

org.gradle.daemon=true


Offline-сборка

При сборке Gradle периодически проверяет web-ресурсы зависимостей, чтобы их разрешить. Можно отключить данное поведение. Этот совет подходит для тех, кто имеет медленное интернет-соединение или соединение с большими задержками.

В меню Build, Execution, Deployment -> Gradle отмечаем чекбокс Offline work.


Увеличение heap size Android Studio или IDEA

Такая опция пригодится для больших проектов. По умолчанию в студии указан xmx1280m (тем не менее, вместе с подпроцессами студия поглощает RAM сильно больше). Маленький максимальный размер кучи может провоцировать более частые вызовы GC и, тем самым, замедлять работу.

Увеличить стартовый heap size можно как самой студии, так и Gradle.

Для Gradle пишем в gradle.properties

org.gradle.jvmargs=-Xms1024m -Xmx4096m

что соответствует 1ГБ стартового размера кучи и максимума в 4 ГБ для наращивания. Подберите размер в соответствии с ресурсами, которые хотите выделить из доступных Вам.

Для самой Android Studio или IDEA идем в меню Help -> Edit Custom VM Options и пишем те же JVM-параметры с нужными Вам объемами.

Этими же способами можно корректировать поведение JVM в случае, если у Вас возникают с ней какие-либо сложности. Полный список аргументов можно получить с помощью команды java -X.


Плагины

Нет каких либо плагинов, которые могут ускорить IDE. А вот избавиться от пары-тройки можно. Это может повысить отзывчивость или уменьшить время запуска. Особенно если Вы установили несколько сторонних.

Конкретных рекомендаций здесь давать не буду- потребности у всех разные. Просто идете в Settings -> Plugins и отключаете то, что вам не нужно, внимательно прочитав описание и очень хорошо подумав. Не факт, что Вам вообще нужно что-то отключать.


Inspections

Отключение некоторого количества пунктов в меню Settings -> Editor -> Inspections может повысить отзывчивость IDE. Иногда существенно.

Здесь тоже не будет конкретных рекомендаций, отключайте с умом. Помните- Вы не робот и допускаете ошибки, а инспекции помогают Вам их избежать.


Power Save mode

Активация этого режима находится в меню File. В нем отключаются все фоновые процессы (индексация, статический анализ кода, Spell Checking и т.д.). И студия начинает вести себя заметно шустрее. Но и по функционалу становится не сильно лучше, например, VS Code.

В общем режим для ситуаций, когда всё совсем плохо.


Settings Repository

Этот совет не о быстродействии, а о комфорте. Ваши настройки удобнее будет хранить в отдельном репозитории и использовать эту функцию. При переезде на другую машину это удобно.

Если Вы работаете в команде с утвержденным codestyle- то новому разработчику будет удобно сделать свою ветку в Git, поменять в ней copyright и настройки для своей машины, и использовать те же настройки codestyle вместе со всеми остальными.

Можно, конечно, коммитить .idea в репозиторий, но это- плохой подход.


AVD

С самого начала своего существования AVD был неповоротлив и прожорлив. В последние 3 года он был сильно усовершенствован, что позволило запускаться и работать на современных машинах относительно быстро (хотя бы в x86-варианте).

И тем не менее, даже сегодня x86-версия Pie на AVD умудряется тормозить. Даже на мощных железках. Ниже представлены варианты, как исправить ситуацию.

Само собой, включение аппаратной виртуализации и установка HAXM с выделением минимум 2 ГБ RAM обязательны.

В случае, если AVD сильно загружает CPU и при этом тормозит- боюсь, уже ничего не сделать. Однако, если нагрузка на CPU остается не высокой- значит дело в графической подсистеме.

Чаще всего это происходит из-за некорректного определения наиболее подходящего для Вашей машины рендера. Вы можете вручную выбрать наиболее подходящий в меню Settings -> Advanced эмулятора. Конкретные настройки подсказать не смогу, так как всё зависит от конфигурации железа и ОС. Просто смените пункт, закройте эмулятор и вызовите Cold Boot. Остановитесь на наиболее подходящем для Вас варианте.


Меню выбора рендера в AVD

При наличии дискретного GPU можно попробовать запустить эмулятор на нем, так как по-умолчанию эмулятор запускается на том же GPU, который обрабатывает рабочий стол. Делается это так же, как и с любой игрой. После не забудьте вызвать Cold Boot.


Итог

Так или иначе, не все перечисленные пункты обязательны к применению. Старайтесь решать проблемы по мере их обнаружения.

Время- самый ценный ресурс. Надеюсь, этот материал поможет Вам более продуктивно его расходовать.

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

Введение

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

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

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

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

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

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

Для использвания достаточно открыть AVD Manager из эклипса или в консоли
/path/to/sdk/tools/android avd
создать свой AVD (Android Virtual Device) и запустить. Более подробно процесс описывать не буду, все достаточно просто.
Однако не обошлось без особенностей. ARM-эмуляторы до ужаса медленные. Что-то нормально проверить практически невозможно, особенно на не очень сильном железе (потому что эмуляция процессора с другой архитектурой). Тут на помощь может прийти технология Intel HAXM, однако это чревато тем, что платформо-зависимый код (который должен работать под ARM) может не работать, поскольку используется x86.
СкриншотыAVD manager

Параметры запуска

Сам эмулятор

Плюсы

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

Минусы

Genymotion

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

СкриншотыОкно работающего девайса

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

Главное окно приложения


Плюсы

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

Минусы

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

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

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

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

adb connect ip.add.res.s

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

Консоль с IP-адресом:


Плюсы

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

Минусы

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

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

adb connect 127.0.0.1

СкриншотыЗапуск:

Главное окно:


Плюсы

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

Минусы

  • Неудобно ставить приложения
  • Непонятно, что с версиями android (2.3 под OS X, под Windows ставился 4.0)
  • Нет под linux
Вывод

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

Используем Android Studio в качестве эмулятора смартфона

Android Studio

Android Studio — быстрый эмулятор смартфонов от Google позволяет запускать на компьютере последние версии операционной системы Android и тестировать необходимые вам приложения.

Эмулятор Android Studio предоставляет практически все возможности реального Android-устройства (смартфона или планшета) прямо с компьютера. Вы можете имитировать телефонные звонки и сообщения, указывать местоположение, имитировать вращение и другие аппаратные датчики, получать доступ к Google Play и многое другое.

Навигация:


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

Примечание. Эмулятор Android поддерживает только 64-разрядные версии Windows 10 / 8 / 7 и требует как минимум 4 гигабайта оперативной памяти. Необходима поддержка и активация функций виртуализации «Intel Virtualization Technology» или «AMD Virtualization Technology» в BIOS материнской платы.

Как установить и подготовить Android Studio

Для начала, перейдите на официальную страницу загрузки и скачайте 64-битную версию.

Скачать Android Studio


Запустите дистрибутив, нажмите кнопку «Next» и выполните установку следуя инструкциям.

Начало установки

По завершении, нажмите «Finich«.

Окончание установки Android Studio

Если у вас нет сохраненных настроек программы, выберите «Do not import settings» и подтвердите нажав «OK«.

Не импортировать настройки

Откажитесь от передачи статистики в Google кнопкой «Dont send«.

Отказ от передачи данных

Пропустите страницу приветствия.

Пропуск страницы


Выберите индивидуальные настройки.

Выбор индивидуальных настроек

Задайте подходящую тему оформления.

Выбрать тему

Отметьте галочкой «Android Virtual Device» и проследуйте дальше.

Отметить - Android Virtual Device

Задайте объём оперативной памяти руководствуясь вашей конфигурацией компьютера.

Задать объём оперативной памяти

В следующем окне нажмите кнопку «Finich«.

Финиш

Подождите пока скачаются необходимые компоненты.

Дождаться загрузки

И финишируйте одноименной кнопкой.

Загрузка окончена


Как подготовить эмулятор Android Studio

В окне «Welcome to Android Studio» нажмите «Start a new Android Studio project«.

Нажать "Welcome to Android Studio"

Выберите «Basic Activity«.

Выбрать "Basic Activity"

Задайте «Версию Android», мы выбрали последнюю Android 10 (Q) и нажмите «Finich«.

Задать версию Android

Как настроить и запустить эмулятор Android Studio

Запустите Android Studio и нажмите кнопку менеджера виртуального Android-устройства.

Открыть AVD

В нем будет готовое устройство «Nexus 5 X» которое можно удалить из-за отсутствия сервиса Play Store.

Удалить устройство

После чего, создадим своё нажав «Create Virtual Device«.

Создать устройство

Отметим категорию устройства, это может быть смартфон, планшет либо другое. Мы выберем «Phone» и эмулируем смартфон, «Pixel 2» со значком «Play Store» отлично подойдет.

Выбор устройства

Теперь скачаем операционную систему Android 10 с сервисом Google Play нажав «Download«.

Скачать образ системы

Примем соглашение.

Принять соглашение

Дождемся скачивания и распаковки системы.

Дождаться загрузки и распаковки

Нажмем на «Finich«.

Закончить


И пойдем дальше.

Пройти дальше

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

Задать имя и положение экрана

После чего, нажать кнопку запуска эмулятора Android и дождаться загрузки системы.

Запустить эмулятор Android

Android-устройство

Когда устройство будет загружено, перейдите в настройки Android, прокрутите в низ и зайдите в раздел «System«.

Перейти в настройки системы

Пройдите по такому пути Languages & input > Languages.

Попасть в настройки языка

Добавьте «Русский язык» через кнопку «Add a Language«, поставьте «Русский» первым языком.

Добавить и активировать русский язык

Пользуйтесь операционной системой Android и тестируйте разнообразные приложения из Google Play на своем компьютере.

Эмулятор андроид-устройства от Visual Studio — Fandroid.info

В последнее время для запуска андроид-приложений в процессе разработки я пользуюсь эмулятором Visual Studio от Microsoft. Он достаточно быстрый, удобный, поддерживает все распространенные версии андроид.

Эмулятор Visual Studio отлично подойдет вам, если у вас на компьютере стоит Windows и процессор семейства AMD. Эта связка не дружит с навороченными образами виртуальных устройств последних версий в Android Studio. А эмулятор Visual Studio прекрасно взаимодействует с Android Studio, поддерживает технологию Instant Run, и может стать полноценной заменой стандартному AVD. Кроме того, он полностью бесплатный.

Для установки Эмулятора Visual Studio идем на сайт visualstudio.com
Нажимаем кнопку «Загрузить».
В процессе установки следуем инструкциям.
После окончания установки запускаем программу.

При запуске открывается окно, где мы видим список виртуальных образов андроид-устройств. Изначально активны только 2 устройства. Это планшет с характеристиками Nexus 7 и с установленной версией Android 4.4, а также смартфон с характеристиками Samsung Galaxy S5 или Sony Xperia Z, и тоже с Android 4.4. Позже мы подключим устройства более поздних версий.

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

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

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

Вернемся к списку устройств. Можно выбрать любое неактивное устройство в списке и загрузить его для дальнейшего использования. При выборе устройства обращайте внимание на его свойство Memory. Это объем оперативной памяти работающего устройства. То есть при запуске эмулятор занимает указанный объем оперативной памяти вашего ПК. Если вашей оперативки недостаточно — виртуальное устройство не запустится.

У разных виртуальных устройств в этом списке, независимо от версии Android, параметр Memory может быть от 1 до 3 GB. Если у вас нет лишней оперативки на ПК, вполне можно выбрать виртуальное устройство любой версии с одним гигабайтом оперативки.

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

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

Если Android Studio не видит запущенное виртуальное устройство, придется немного поковыряться в реестре Windows.

Для этого воспользуемся системной утилитой редактирования реестра regedit. Жмем комбинацию клавиш Windows+R и пишем в окошко команду regedit.

Я думаю, вы в курсе, что работать с реестром следует очень внимательно и осторожно, поскольку одно неверное действие может привести к неработоспособности вашей системы Windows.

В редакторе реестра находим ветку HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node. Создаем здесь новый раздел Android SDK Tools. Внутри раздела создаем новый параметр Path, в значение которого сохраняем путь к Android SDK. Например, у меня оно расположено на диске D в папке android.

После этого перезапустите виртуальное устройство, и Android Studio его успешно обнаружит.

Android: Эмулятор

Статья проплачена кошками — всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Ввод с настольной клавиатуры
Создание SD-карты на эмуляторе
Эмулятор Android 4.0 с панелью навигации
Скопировать базу данных на эмулятор
localhost на эмуляторе
Тайм-аут при загрузке приложения
Failed to allocate memory: 8
Поддержка многопользовательского режима в Android 4.2
Альтернативный эмулятор Genymotion

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

В апреле 2016 вышла версия Android Studio 2.0 с новым эмулятором. Постепенно все материалы будут заменяться с учётом новой версии.

В новой версии вы можете просто перетащить apk-файл на окно эмулятора для быстрой установки. Также доступны изменение размеров окна, операции мультитача и многое другое.

Для работы с новым эмулятором следует обновить SDK Tools до версии 25.1.1 или выше, создать новое виртуальное устройство, используя образ x86-системы. Страница документации.

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

Вы можете пользоваться мышкой вместо лапы и настольной клавиатурой вместо экранной клавиатуры в эмуляторе.

Одно из преимуществ AVD при тестировании устройств — возможность задавать произвольные значения для разрешения и плотности пикселей экрана. Это избавляет вас от необходимости покупать все устройства на рынке. Хотя серьёзные компании так и поступают.

Виртуальное устройство

Перед разработкой приложения необходимо создать виртуальное устройство, которое включает в себя эмулятор. Само устройство создается в Eclipse. Но что происходит за кулисами? В Windows 7 в папке C:\Users\user_name\.android\avd создаются отдельные папки для каждого вида устройства под Android 2.1, 2.3 и так далее. В Linux ищите каталог /home/user_name/.android/.

Это знание может помочь вам, если ваше имя пользователя в Windows используется на русском языке. В этом случае эмулятор отказывается запускаться и выдает ошибку. Откройте ini-файл и пропишите путь к виртуальному устройству таким образом, чтобы в пути не встречались русские буквы (соответственно, сам файл *.avd также нужно переместить в другое место).

Ввод с настольной клавиатуры

Если в приложении есть текстовое поле и нужно вводить большой текст, то удобнее это делать с помощью настольной клавиатуры, чем тыкать мышкой по клавишам на эмуляторе. Для этого сделаем вид, что у нашего виртуального устройства есть встроенная клавиатура — открываем Android Virtual Device Manager, выбираем нужное устройство и нажимаем кнопку Edit…. Далее в диалоговом окне в разделе Hardware выбираем настройку Keyboard support и присваиваем ему свойство yes. Перезапускаем устройство и теперь можно вводить текст со своей клавиатуры.

Создание SD-карты на эмуляторе

В эмуляторе по умолчанию нет SD-карты. Необходимо сделать некоторые настройки для её эмуляции. В папке ..\Android\android-sdk\tools есть утилита MkSDCard.

Создайте карточку памяти необходимого размера и укажите путь к ней. Например, для создания карточки 256 мегабайт в папке D:\AnroidTutorial\ для файла mysdcard.iso:


mksdcard 256M D:\AnroidTutorial\mysdcard.iso

Кстати, не стоит гнаться за размерами карточки и тратить место на жёстком диске, так как вряд ли вы будете тестировать гигабайтные видеоролики на эмуляторе.

После создания карточки памяти, необходимо сообщить о её существовании эмулятору. Откройте Eclipse, перейдите в ваш проект. В меню Run | Run Configurations выберите пункт Android Configuration в левой части панели, потом перейдите на вкладку Target. Внизу вы увидите строчку Additional Emulator Commandline Options и текстовую строку для ввода параметров. Введите в ней строку:


-sdcard D:\AnroidTutorial\mysdcard.iso

Можно пойти другим путём. Откройте AVD Manager, выберите нужное устройство, которое должно иметь SD-карту, и щелкните на кнопке Edit. В диалоговом окне укажите путь к созданному образу карточки.

Чтобы копировать файлы на эмулированную карточку, можно использовать утилиту ADB с командой push (от слова пушистый кот)


adb push [local_path] [remote_device_path]

Например, вы хотите поместить файл meow.txt в приватную папку вашего приложения /data/data/ru.alexanderklimov.filesystemdemo:


adb push D:\meow.txt /data/data/ru.alexanderklimov.filesystemdemo

Чтобы убедиться, что файл успешно скопирован, используйте команду:


ls /data/data/ru.alexanderklimov.filesystemdemo

Если в списке файлов увидите нужный вам файл, значит копирование произошло успешно.

Если перед вам стоит обратная задача — извлечь файл из устройства/эмулятора, то используйте команду pull:


adb pull [remote_device_path] [local_path]

С её помощью также можно скопировать файл базы даннных на свой компьютер:


adb pull /data/data/ru.alexanderklimov.filesystemdemo/databases/images.db D:\Downloads\images.db

Эмулятор Android 4.0 с панелью навигации

В Android 4.0 появилась новая навигационная панель. Но она может не отображаться на эмуляторе. В окне настроек эмулятора достаточно поставить флажок у пункта Display a skin with hardware controls.

Если вы по-прежнему не видите панель навигации, то выберите устройство с большим разрешением. Я наблюдал такую проблему, когда использовалось разрешение 800 на 480.

Скопировать базу данных на эмулятор

Запустите эмулятор.

Запустите утилиту adb.exe через командную строку.

Запустите оболочку (shell)


C:\Program Files\Android\android-sdk\platform-tools]adb -e shell

Появится приглашение #

Определитесь с местонахождением базы данных. Если пакет имеет имя «ru.alexanderklimov.sample», то путь будет data/data/ru.alexanderklimov.sample/databases.


cd data/data/ru.alexanderklimov.sample/databases
ls

Загружаем базу в эмулятор


user_db

localhost на эмуляторе

Веб-мастера часто тестируют свои сайты на собственном компьютере, устанавливая веб-сервер (Denver, XAMPP и др.). При обращении к странице на локальном сервере используются адреса типа http://localhost или http://127.0.0.1. На эмуляторе нужно использовать адрес http://10.0.2.2.

Создадим в корне сервера файл cats.php:

<?php
    echo "<h2>Hello Kitty!</h2>";
    echo "<h3>Меня видно?</h3>";
?>

Запустим эмулятор. Далее запустим браузер и перейдем по адресу http://10.0.2.2/cats.php

Отлично, всё работает! Это стандартные настройки. На конкретных машинах возможно понадобится дополнительно настраивать прокси, файерволы и прочее. У меня были проблемы, когда установил OpenServer.

Также можно указать dns-сервер через командную строку. Может пригодиться, если вдруг эмулятор перестал видеть интернет.


$ANDROID_SDK/emulator/emulator -avd ... -dns-server 8.8.8.8

Тайм-аут при загрузке приложения

Иногда, при попытке загрузить приложение в эмулятор после редактирования кода, может вылезти сообщение:

Failed to install *.apk on device *:
timeout Launch canceled!

Попробуйте увеличить стандартное значение, которое равно 5000, на большее число. Зайдите в меню Window | Preferences. Выберите слева Android | DDMS и в поле ADB connection time out (ms): введите нужное значение.

По собственному наблюдению могу сказать, что данный приём не всегда помогает. Если раньше такой проблемы не было, то попробуйте просто перезагрузить Eclipse и запустить эмулятор снова.

Перезагрузить эмулятор

Кстати, о перезагрузке. Можно перезагрузить сам эмулятор, если возникают с ним какие-то проблемы. Это можно сделать через вкладку Devices, если выбрать команду Reset adb.

Failed to allocate memory: 8

Неожиданно столкнулся с проблемой создания нового эмулятора под Nexus 7 (Android SDK Manager version 21). Эмулятор отказывался запускаться, выводя сообщение:


Failed to allocate memory: 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Ответ нашёлся на Stackoverflow. Нужно открыть файл C:\Users\<user>\.android\avd\<avd-profile-name>.avd\config.ini и изменить строчку hw.ramSize=1024 на hw.ramSize=1024MB.

Поддержка многопользовательского режима в Android 4.2

В Android 4.2 появилась поддержка многопользовательского режима, который можно видеть, например, на планшетах Nexus 7. Но на эмуляторе такая возможность по умолчанию отключена. Если вы хотите выделить отдельное пространство своему коту, чтобы он играл на эмуляторе в свои любимые игры и не сбивал ваши настройки, то заведите нового пользователя следующим образом.

Запустите новый эмулятор с версией Android 4.2 (можно выбрать из списка готовых устройств в AVD планшет Nexus 7). Далее запустите командную строку и выполните в ней последовательно команды:


adb shell setprop fw.max_users 4
adb shell stop
adb shell start

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

Google TV Emulation

Существует ещё эмуляция Google TV. Для России это пока не актуально. Просто оставлю ссылку Google TV Emulation — Google TV — Google Developers

Genymotion и другие эмуляторы

Стандартные эмуляторы, которые входят в состав SDK, вызывают много нареканий среди разработчиков. Особенно недовольны те, кто работает на не слишком мощной машине. Эмуляторы долго загружаются, медленно работают. А у некоторые эмуляторы просто не запускаются из-за проблем с драйверами.

Существует альтернатива — эмулятор Genymotion. На домашней странице можете почитать информацию об эмуляторе. Эмулятор предназначен для личного пользования, в этом случае он бесплатен. Если вы используете его для рабочих проектов, то следует купить лицензию. Бесплатной версии хватает для обычных программ при обучении. Можете смело им пользоваться.

Установка проста. Скачиваете нужную версию для вашего компьютера и запускаете установку. У вас появится значок Genymotion на рабочем столе. Запустите эмулятор, затем запустите проект в Android Studio. Студия автоматически подцепит запущенный эмулятор и покажет его в списке доступных устройств.

Если вам нужно проверять работу приложений, связанных с Google Play Service, то его можно установить отдельно. Зайдите на страницу The Open GApps Project и выберите нужную версию. Перетащите скачанный файл (например, open_gapps-x86-6.0-nano-20160331.zip) на эмулятор и процесс установки начнётся автоматически. Перезагрузите эмулятор. Если появится сообщение, что версия устарела, то можете уже спокойно обновить из эмулятора.

Одно время эмулятор был очень популярен, но однажды Гугл серьёзно взялся за свой эмулятор и сильно переработал его. Поэтому на данный момент пик славы Genymotion миновал.

Visual Studio’s Emulator for Android

Microsoft объявила о создании своего эмулятора для Android, который предназначен для Visual Studio. Но его можно скачать и установить без Visual Studio, а отдельной программой.

Анонс эмулятора в блоге — Introducing Visual Studio’s Emulator for Android — Microsoft Visual Studio Team Services — Site Home — MSDN Blogs

Дополнительное чтение

Emulator Control: Голосовые вызовы, отправка и приём SMS, геолокационные данные на эмуляторе

Клавиши для работы с эмулятором

Дополненная реальность в эмуляторе

Leave a comment