Начиная осваивать разработку для любой платформы, ты обязательно сразу же наткнешься на множество с первого взгляда незаметных подводных камней. Большинство из них будут связаны с самим процессом кодинга: несостыковки в API, скрытые функции, ограничения, особый стиль программирования для платформы. Есть и камни, лежащие немного поодаль: тестирование и автоматическая оптимизация, создание клипарта и иконок, получение автоматических краш-репортов. Неопытные разработчики для Android рискуют отбить о них обе ноги.

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

 

1. Медленный эмулятор

Итак, ты набросал свое первое приложение, и пора его запустить и проверить на работоспособность. Для этого в комплекте Android SDK есть эмулятор. Долгое время его упрекали за медлительность, но с выпуском Android Studio 2.0 ситуация намного улучшилась — x86-версия эмулятора получила хардварное ускорение, так что теперь он работает быстрее реальных устройств. К тому же у него появился удобный графический интерфейс, с помощью которого можно симулировать звонки, СМС, изменять данные GPS и сбои в сети, то есть все, для чего раньше приходилось использовать инструменты командной строки.

Поэтому, если ты еще не обновился, настоятельно рекомендую это сделать, не говоря уже о переходе с Eclipse. И обязательно выбирать x86-версию эмулятора в AVD manager, ARM-версия не поддерживает хардварное ускорение.

Новый эмулятор Android Studio 2.0
Новый эмулятор Android Studio 2.0
 

2. Смартфон на поводке

Второй этап — тестирование на реальном устройстве. Здесь все просто: подключаешь смартфон по USB, устанавливаешь драйверы, включаешь режим отладки в настройках для разработчиков, после чего девайс появляется в списке доступных для установки приложения (рядом с эмулятором). Проблема только в том, что в данном случае устройство необходимо держать подключенным к ПК с помощью кабеля, а если это твой основной смартфон, на который поступают звонки и сообщения, то об удобстве говорить не приходится.

К счастью, Android Studio (а точнее, утилита ADB, которую он использует для связи с устройством) поддерживает работу по сети. Но данную функцию еще нужно активировать. Если у тебя рутованный смартфон, то тебе повезло: включить отладку по сети можно с помощью приложения WiFi ADB. Последовательность действий:

  1. Устанавливаем WiFi ADB, запускаем, включаем сетевой режим с помощью переключателя и запоминаем IP-адрес.
  2. Запускаем Android Studio.
  3. Открываем консоль, переходим в каталог с установленным SDK, далее в platform-tools и запускаем следующую команду:

    $ adb connect IP-адрес

Теперь, если попытаться собрать и запустить приложение, ты увидишь в списке устройств также и свой смартфон. Те, у кого нет root, могут перезапустить ADB в сетевом режиме, предварительно подключив его кабелем. Делается это так:

  1. Подключаем смартфон и устанавливаем драйверы.
  2. Включаем режим отладки в настройках для разработчиков.
  3. Открываем консоль, переходим в каталог SDK/platform-tools и запускаем следующую команду:

    $ adb tcpip 5555

  4. Подключаемся к смартфону по сети:

    $ adb connect IP-адрес

IP-адрес можно узнать через настройки: «О телефоне (О планшете) → Общие сведения», пункт «IP-адрес».

 

3. Библиотеки

Окей, твой накиданный за полчаса огрызок вроде бы работает, и настало время превратить его в настоящее приложение с красивым интерфейсом и виджетами для рабочего стола. На этом этапе тебе наверняка понадобятся внешние библиотеки, реализующие различные концепции интерфейса, паттерны программирования и связь с внешними сервисами. И если с последними все ясно (нужен SDK для Dropbox — открываешь портал для разработчиков и следуешь инструкциям), то с остальными уже сложнее. Где их искать и какие библиотеки лучше?

Наиболее полный каталог библиотек — это Android Arsenal. Там ты найдешь практически все, что тебе нужно. Доступны удобный поиск и сортировка по рейтингу, для каждой библиотеки есть инструкция, как ее подключить к своему проекту, в том числе с помощью стандартной для Android системы сборки Gradle: достаточно добавить репозиторий в файл build.gradle проекта и указать библиотеку в списке зависимостей.

Для каждой библиотеки есть инструкция по подключению
Для каждой библиотеки есть инструкция по подключению

Отличный список must have библиотек ты найдешь на этой странице. От себя добавлю, что на первых этапах стоит сразу изучить Dagger 2, RxJava и Retrofit. Став продвинутым разработчиком, ты так или иначе придешь к использованию этих библиотек.

 

4. Иконки и клипарт

Наконец, спустя дни или недели у тебя начинает вырисовываться полноценное приложение. Вот только никакого графического материала нет до сих пор: иконка стандартная, в форме зеленого робота, вместо клипарта — заглушки. Очевидно, без графики соваться в маркеты бессмысленно, однако и платить за иконку для своего первого приложения тоже глупо. Что делать?

На самом деле иконку можно сгенерировать. Есть замечательный веб-сервис Android Asset Studio, с помощью которого буквально за пару минут ты получишь красивую иконку во всех возможных разрешениях. В качестве основы можно взять подготовленную тобой картинку, просто написать текст или, что лучше всего, выбрать из предоставленного сервисом клипарта. Также ты сможешь задать стиль иконки (круглая, квадратная, в стиле iOS...), цвет, настроить тени и другие параметры. В результате в твоем распоряжении появится архив ic_launcher.zip, который необходимо развернуть в каталог AndroidstudioProjects/ИМЯ_ПРИЛОЖЕНИЯ/app/src/main/res. Обязательно создай веб-иконку, нажав на кнопку «Generate web icon». Она тебе понадобится.

Не забудь про веб-иконку
Не забудь про веб-иконку

Тот же сервис позволяет создать иконки для ActionBar’а и строки состояния. Принцип примерно тот же, скажу лишь, что в строке состояния лучше всего смотрятся иконки с отступом от краев 15%.

Кроме того, тебе понадобится так называемая Feature Image. Это специальная картинка, которую Play Market и другие магазины приложений используют в качестве плашки в верхней части экрана (когда открываешь страницу приложения на смартфоне). Ее можно сгенерировать с помощью другого сервиса. Для оформления скриншотов можно использовать официальный сервис от Google. Он создает вокруг скриншота рамку смартфона.

 

5. Краш-репорты

Приложение готово, иконка есть, интерфейс удобный, код качественный. Настало время тестирования, и первое, что ты делаешь, — рассылаешь приложение друзьям и знакомым. Но вот незадача: у некоторых из них приложение падает, а у тебя все работает отлично, и повторить действия, приведшие к падению, ты не можешь. Что делать, просить друзей присылать тебе листинг logcat?

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

Одна из самых популярных таких систем — Fabric, однако я рекомендую посмотреть в сторону Splunk MINT: он бесплатный, простой и легко интегрируется в приложение (достаточно добавить всего одну строку кода). Чтобы начать им пользоваться, необходимо подключить к проекту SDK, сделать это можно с помощью все того же Gradle. Открываем файл build.gradle (тот, что относится к приложению, а не ко всему проекту) и добавляем следующие строки:

repositories {
    maven { url "https://mint.splunk.com/gradle/" }
}

dependencies {
    compile "com.splunk.mint:mint:5.0.0"
}

Далее открываем веб-страницу Splunk MINT, регистрируемся и добавляем новое приложение через панель управления (add app):

После этого Splunk MINT покажет тебе строку кода, которую необходимо вставить в код:

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Check Also

Из-за багов в прошивке BMC под угрозой оказались серверные решения Gigabyte и Lenovo

Инженеры Gigabyte и Lenovo опубликовали обновленные прошивки для серверных материнских пла…

3 комментария

  1. Аватар

    FURINAX

    26.08.2016 at 14:30

    Здравствуйте. Работаю на 2-ядерном компьютере, ядра с частотой 2.3 ГГЦ. Оперативки 3 Гб.
    На работе 2-ядерный, ядра по 3ГГЦ, оперативки 4Гб.

    Даа..не блеск, но на любом из этих компов прекрасно работают одновременно запущенные Adobe Photoshop, Mozilla, Autocad May, Unity3D. Если поотимизировать, то ещё и Visual Studio со всем этим прекрасно работает. Т.е. не смотря на скромноватые характеристики их более чем достаточно для работы с такими ресурсоемкими программами.

    Поставил Android Studio 2.1.2 — ни на одном компе эмулятор не работает, а вернее…работает, но как…после каждого запуска жду на одном компе 30 минут, на другом 40 минут. Тогда принял решение использовать вместо стандартного эмулятора Genymotion — типа с ним, как все пишут, должно быть быстрее. Итог: действительно быстрее, в 2 раза — т.е. 15 минут запускется эмулятор:D И на кой черт такая среда? И почему говорят, что эмулятора эклипса плохой и медленный, у эклипса он запускается у меня за 2-3 минуты. Как можно разрабатывать что-то, имея такой отвратительный инструмент.

    Т.е. эта статья — полная брехня!!!!

    Потом я попробовал на хорошем i3 4-ядерном запустить при 8 Гб оперативной памяти, результат для стандартного эмулятора — 7-8 минут, для Genymotion -4-6 минут. И что, так можно работать? Каждый раз по столько ждать.
    У меня есть Samsung Galaxy S4. Решил тогда хотя бы с ним работать через Android Studio (вообще..для разработки нужен эмулятор, чтобы проверять на различных устройствах работу программы..) — 2-дневными усилиями Android Studio увидела смартфон, но все равно..не стала с ним работать.

    Эклипс прекрасно видит устройство и прекрасно на нем запускает программу на проверку без задержек.

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

    P.S.: опиши, какие у твоего компьютера характеристики.

    • Аватар

      coolmarat

      28.08.2016 at 09:42

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

  2. Аватар

    Soprano61

    14.12.2016 at 02:13

    Я подключил деплоинг приложения по wifi — статья золотая — я бы её оценил в 3к рублей)

Оставить мнение