Программирование для Android - это просто! Android для начинающих ч.I

Симпатичный дроид от Гугл - всегда готов быть запрограммированным!

Опубликовано: журнал "Системный администратор" №6, 2013г.

Обзор утилит командной строки и технологии создания приложений с помощью Android SDK

К операционной системе №1 на рынке мобильных устройств в мире (см. публикацию [1], статью Википедии [2]) сегодня приковано внимание широкого круга ИТ-специалистов, в том числе и разработчиков программного обеспечения (ПО). В настоящее время в хранилище Google Play доступно более 700 000 различных приложений, многие из которых распространяются бесплатно, обеспечивая популярность этой операционной системе среди пользователей. Без преувеличения можно сказать, что секрет успеха этой свободной мобильной платформы - сплав удобства и надежности использования системы с развитыми и современными средствами разработки.

Несмотря на свою молодость, Android дает разработчику широкие возможности по использованию в своих проектах самых современных технологий. Это и стандарты связи - GSM/EDGE, CDMA, UMTS, Bluetooth, Wi-Fi, LTE, WiMax, USB, графическая библиотека 2D/3D, основанная на OpenGL, реляционная СУБД SQLite, различные медиа-форматы — H.263, H.264, MPEG4, AMR, AAC, MP3, MIDI, OGG, WAV, JPEG, PNG, GIF,BMP, потоковое видео, технологии Multi-touch и Multitasking, Google Maps и GPS и многое, многое другое.

Целью нашей статьи будет обзор инструментария для тех, кто интересуется программированием и хочет начать писать приложения для Android. А может это и действительно не так сложно!?

Рис.1 Симпатичный дроид от Google — Всегда готов быть запрограммированным! (рисунок с презентации возможностей работы с интерфейсом USB в Android)

Сразу скажем, что тем, кто имеет базовые навыки программирования на языке Java повезло, так как именно этот язык был выбран в качестве основы API (Application Programming Interface) — прикладного интерфейса программирования ОС Android. Для этого была разработана виртуальная машина Dalvik, специально оптимизированная для мобильных устройств (см. [3]). Однако тем кто не слишком знаком с Java не стоит отчаиваться, можно знакомиться с языком по ходу изучения «материала» (примеров решения различных задач), двигаясь от простого к сложному и постепенно повышая свой уровень. Ведь как говорит пословица: «Аппетит приходит во время еды». Именно по такому принципу построены занятия курса Java для школьников (и не только)

В сети Интернет можно легко найти материал различного уровня сложности, посвященный нашей теме. При этом нельзя не упомянуть первоисточник — сайт Google для разработчиков Android (на английском) [4]. Из русскоязычных сайтов, можно порекомендовать уникальный, в своем роде, ресурс [5], где подобран отличный практический материал, и его можно скачать, к тому же, в pdf формате. Для любителей печатных изданий скажу, что разобраться во многом, в том числе с ресурсами Android-приложений, поможет книга С.Хашими [6]. (прим. Спустя несколько лет после написания этих строк, можно добавить, что литературы и ресурсов в Интернет по Андроид-программированию теперь достаточно, литературу можно подобрать согласно своему уровню в книжном магазине или учиться с помощью запросов в поисковике).

Однако практически весь материал в сети и в литературе ориентирован на использование интегрированной среды разработки (IDE) Eclipse, а точнее плагина для нее — ADT или Android Developer Tools (см. [7]). Хотя преимущества среды разработки IDE Eclipse очевидны (мощный редактор кода, интерактивная справка, мастера для создания проектов и классов, различные варианты представлений информации, компоновки, плагины и проч.). Но познакомившись поближе с Android SDK (Software Development Kit — комплект средств разработки) и с работой утилит SDK в командной строке начинаешь глубже понимать весь процесс создания приложения. Ведь различные IDE используют незаметно для нас именно эти утилиты, а некоторые разработчики (в основном работающие в Unix/Linux) неспроста предпочитают традиционные vi/Emacs, подключая к текстовому редактору мощь shell-скриптов и конвейерной обработки этих операционных систем.

Установка SDK и обзор инструментария

Начнем с того, что на машине, предназначенной для экспериментов, должен быть установлен JDK 6 или выше, затем нужно скачать сам SDK [7] для своей ОС. В зависимости от операционной системы (Linux, MacOS, Windows), это может быть архивный или exe-файл (для Windows). Установив SDK или распаковав нужный файл в удобный каталог, можно начать исследование инструментария для работы программиста. В операционной системе Linux после распаковки архива в каталог ~/android, для удобства, чтобы не вводить полный путь к командам, следует добавить такой путь к переменной окружения PATH в файл ~/.profile:

PATH="$HOME/android/android-sdk-linux/tools:$HOME/android/android-sdk-linux/platform-tools:$PATH"

После установки SDK в распоряжении программиста находятся три основные утилиты командной строки, но они умеют «почти все»:

Android Emulator (tools/emulator) — запускает приложения на эмуляторе платформы в виртуальных устройствах (Android Virtual Devices — AVDs). Эмулятор позволяет тестировать программы не загружая их на реальное устройство, что существенно сокращает время разработки.

Android (tools/android) — эта утилита создает проекты и управляет виртуальными устройствами с помощью графической утилиты AVDs Manager.

Android Debug Bridge (platform-tools/adb) — интерфейс с виртуальным устройством AVD или реальным устройством Android, подключенным к компьютеру. Позволяет устанавливать приложения, получать доступ к командной строке и выполнять различные команды на устройстве (обеспечивает shell-доступ).

Основные этапы разработки

Установив SDK, мы выполнили первый шаг в разработке ПО для Android (см. Таблица 1 и ресурс [8]). Инженеры Google условно разбили создание приложения на следующие этапы:

Таблица 1. Этапы разработки Android-приложения

Установка Установка нужного инструментария Инсталляция Android SDK, Android Development Tools, настройка переменных среды
Установка AVDs и подключение устройств Создание виртуальных устройств (Android Virtual Devices) и подключение реальных устройств для тестирования
Разработка Создание приложения Создание проекта используя Java-код, ресурсные файлы, файл манифеста
Тестирование и отладка Построение и запуск приложения Построение и запуск приложения в режиме отладки
Отладка приложения Отладка приложения с использованием инструментов отладки
Тестирование приложения Тестирование приложения с помощью инструментария Android и дополнительных инструментов
Публикация Подготовка приложения к публикации Построение и тестирование приложения в режиме релиза
Выпуск приложения Попытка подарить всем или продать приложение

На этапах разработки, отладки и публикации приложения SDK активно использует следующие вспомогательные утилиты: Ant (Apache Ant) — для автоматизации процесса сборки установочного apk-файла, Keytool и Jarsigner (входят в состав JDK) — для генерирования ключа и создания цифровой подписи apk-файла. Именно такой формат принят для распространения программного обеспечения в данной операционной системе и используется для размещения на Google Play.

Создание среды исполнения

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

$android avd

Эта команда запускает графическую оболочку инструмента AVD Manager. Отсюда можно создать, запустить или изменить параметры виртуального устройства (см. рис.2)

Окно настроек AVD Manager
Рис.2 Окно создания (изменения параметров) виртуального устройства AVD Manager

Вы можете менять выбрать параметры виртуального устройства самостоятельно (для примера см. рис.2) или выбрать на вкладке Device Definitions окна AVD Manager конфигурацию для создания виртуального устройства его из шаблона, соответствующего параметрам реального планшета или телефона.

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

$android create avd -n em1 -t 1 -c 512M

Параметры этой команды: -n — имя устройства, -c — размер карты памяти в байтах, -t — среда исполнения (target runtime), значение параметра необходимо устанавливать в зависимости от нужной для программиста версии Android. Узнать его можно с просмотрев вывод:

$android list targets

Созданное устройство запускается из AVD Manager. Для этого нужно его выделить его и нажать “Start”, или то же самое можно сделать с помощью командной строки:

$ emulator @em1

Где “em1” имя нашего устройства. В результате мы на экране монитора увидим эмулятор Android в действии (см. рис. 3). Не упустите шанса посмотреть погоду в «виртуальном устройстве браузере» через поиск от Google!

Эмулятор SDK
Рис.3 Эмулятор от Android SDK

В продолжении статьи, по традиции, дошедшей к нам от уважаемых создателей языка программирования Си, Денниса Ритчи и Брайана Кернигана, мы рассмотрим создание Android-приложения на примере несложной программы, которая выводит на экран приветствие «Hello, World!». Подробно будут разобраны ресурсы приложения, которым из-за ограничения таковых на мобильных устройствах разработчиками SDK уделено большое внимание, а также программа будет протестирована в эмуляторе и установлена на реальный телефон/планшет.

1. Краткие результаты исследования рынка смартфонов и планшетных ПК компании J’son & Partners Consulting - http://www.json.ru/files/reports/2012-12-05_Smartphones_MW_RU.pdf.
2. Материал из Википедии - свободной энциклопедии об Android - http://ru.wikipedia.org/wiki/Android.
3. Страница Google Code о виртуальной машине Dalvik - http://code.google.com/intl/ru-RU/query/#p=android&q=dalvik
4. Сайт Google для разработчиков Android-приложений - http://developer.android.com.
5. Русскоязычный сайт, посвященный обучению разработке приложений под Android - http://startandroid.ru.
6. Хашими С., Коматинени С., Маклин Д. Разработка приложений для Android. - СПб.: Питер, 2011.
7. Страница загрузки Android SDK и ADT - http://developer.android.com/sdk/index.html.
8. Введение в разработку для Android (англ.) - http://developer.android.com/intl/ru/tools/workflow/index.html#Essential...