Неформальные заметкио создании приложений
Создание приложений для Android с помощью Eclipse и ADT
Обсудив в предыдущих двух статьях данного цикла публикацию мобильных версий журналов, переключимся на совершенно другую тему. Сегодня мы впервые за все время существования данного цикла обратимся к инструментам для программистов, причем не столько ради обучения их применению (сделать это в рамках одной статьи абсолютно нереально), сколько с целью обеспечения полноты картины весьма многообразного мира инструментов создания мобильных приложений, книг, игр, интерфейсов к корпоративным системам и онлайновым сервисам.
Сегодня мы поговорим о создании приложений для платформы Android традиционным способом, то есть без применения кодогенераторов и иных вспомогательных средств генерации приложений с типовыми функциями, с которыми мы периодически знакомились на протяжении данного цикла. Упомянутые инструменты нередко позволяют получить нужный результат с минимальными трудозатратами, но их применение ограничено случаями, когда «нужный результат» — это приложение с более или менее стандартной функциональностью, предусмотренной авторами данных инструментов. Создать произвольное приложение с их помощью либо не получится, либо, в ряде случаев, получится при разработке нестандартной части приложения с помощью все тех же профессиональных инструментов.
Что нужно знать для того, чтобы начать создание произвольных приложений для Android? Традиционно приложения для этой платформы создаются с помощью языка программирования Java, поэтому потребуется знакомство с этим языком хотя бы на уровне начинающего разработчика. Для создания приложений потребуются наборы библиотек и утилит Java SDK (JDK) и Android SDK. В принципе, для разработки приложений Android достаточно перечисленных нами наборов библиотек и утилит и либо драйвера устройства, на котором будет тестироваться приложение, либо его эмулятора. Однако в настоящее время все более популярным становится применение среды Eclipse с модулем расширения Android Development Tools (ADT).
Процесс установки ADT подробно описан на ресурсе Google для разработчиков Android-приложений http://developer.android.com/sdk/installing.html. При желании можно скачать с ресурса http://developer.android.com/sdk/index.html готовую среду разработки (рис. 1), включающую Eclipse, Android SDK и ADT, а затем с помощью вызываемой из среды утилиты Android SDK Manager выбрать и загрузить на свой компьютер из Интернета библиотеки для интересующих нас версий данной платформы.
Рис. 1. Среда разработки Eclipse с установленным расширением ADT
И наконец, следует загрузить эмулятор — Android Virtual Device (AVD), на котором будет отлаживаться приложение, выбрав требуемую версию платформы, объем виртуальной SD-карты и разрешение экрана. Вместо эмулятора можно использовать и реальное устройство, в этом случае следует загрузить его драйвер, например, с сайта Google.
Подготовив среду и выбрав рабочую область (Workspace) — местоположение файлов проектов будущих приложений, можно попробовать создать первое приложение либо с нуля, либо воспользовавшись одним из готовых шаблонов. Проект приложения включает код Java-классов, ресурсы — формы, хранящиеся в виде xml-файлов, наборов строк, массивов, графических файлов для разных разрешений экрана, а также манифест AndroidManifest.xml, представляющий собой описание свойств приложения.
Формы приложения можно редактировать как в xml-представлении, так и с помощью визуального дизайнера, позволяющего размещать на ней интерфейсные элементы и иные компоненты приложения (рис. 2).
Рис. 2. Редактор форм
Для других ресурсов также имеются соответствующие редакторы.
Для создания простейшего примера на нашу традиционную тему «О журнале «КомпьютерПресс» воспользуемся всеми доступными средствами генерации кода и форм. Создадим новое приложение с помощью соответствующего мастера, доступного в пункте New → Android Application в контекстном меню рабочей области (рис. 3).
Рис. 3. Мастер создания нового приложения
В процессе работы мастера мы должны выбрать версию платформы Android, с которой будет совместимо наше приложение, сформировать иконку приложения для разных размеров экрана, а также выбрать тип главной формы приложения — той, что должна быть сгенерирована мастером.
На одном из первых экранов мастера отметим опции Create Custom Launcher icon и Create activity — в этом случае мы можем создать свою пиктограмму приложения, а само сгенерированное приложение будет содержать Java-класс, отображающий на экране устройства форму и обрабатывающий возникающие в ней события (рис. 4).
Рис. 4. Выбор параметров приложения
Далее, как уже было сказано, следует создать пиктограмму для приложения — именно она будет отображаться в дальнейшем на экране устройства среди пиктограмм других приложений (рис. 5).
Рис. 5. Создание пиктограммы приложения
Для главной (и единственной) формы нашего примера выберем пустую форму (Blank Activity) c вкладками (рис. 6).
Рис. 6. Выбор типа главной формы приложения
В этом случае мастером будет сгенерирована форма с вкладками (по умолчанию их три) и элементом управления, содержащим многострочный текст (TextView), — по умолчанию этот элемент в сгенерированном коде носит название dummyTextView.
Как уже было упомянуто, применение профессионального инструмента для разработки приложений отнюдь не предполагает, что все приложения создаются с помощью кодогенераторов и визуальных дизайнеров — так или иначе придется и писать код, и редактировать ресурсы.
Начнем с редактирования ресурсов. Для начала присвоим трем вкладкам сгененированной формы нужные нам имена — пусть это будут строки «О нас», «Рубрики» и «Адрес». Для этого вспомним о том, что наше приложение содержит строковые ресурсы, найдем в папке res\values проекта приложения файл strings.xml и, дважды щелкнув по нему, откроем редактор строковых ресуров. В этом редакторе заменим содержимое уже имеющихся строк title_section1, title_section2, title_section3 на «О нас», «Рубрики» и «Адрес», а также добавим три новые строки: About, Address и Subjects — с текстами нашего сайта, содержимым которых мы будем заполнять элемент TextView на форме при переключении между вкладками (рис. 7).
Рис. 7. Редактирование строковых ресурсов
Наконец, наступил момент, когда без написания кода мы обойтись не сможем — необходимо реализовать предполагавшееся нами заполнение элемента dummyTextView при переключении между вкладками. С этой целью мы должны найти в сгенерированном коде класса MainActivity.java, ответственного за отображение формы и обработку ее событий, обработчик события OnCreateView, связанный с перерисовкой формы при выборе вкладки, и заменить в нем сгенерированную автоматически строку
dummyTextView.setText(Integer.toString(getArguments().getInt(
ARG_SECTION_NUMBER)));
на фрагмент кода, выводящий строки About, Address и Subjects в элемент TextView в зависимости от того, какую из вкладок выбрал пользователь:
if (getArguments().getInt(ARG_SECTION_NUMBER)==1){
dummyTextView.setText(R.string.About);
}
else if (getArguments().getInt(ARG_SECTION_NUMBER)==2){
dummyTextView.setText(R.string.Subjects);
}
else if (getArguments().getInt(ARG_SECTION_NUMBER)==3){
dummyTextView.setText(R.string.Address);
}
Далее следует сохранить внесенные изменения и попробовать протестировать готовое приложение. Как было сказано, сделать это можно с помощью устройства, подключенного к компьютеру, на котором ведется разработка, либо с помощью виртуального устройства — эмулятора смартфона Android (Android Virtual Device, AVD).
Для создания AVD нужно выбрать пункт меню Window → Android Virtual Device Manager и создать новое виртуальное устройство, нажав кнопку New справа от списка устройств (возможно, пустого). Затем следует описать характеристики нового устройства. После описания характеристик созданное виртуальное устройство появится в перечне устройств (рис. 8).
Рис. 8. Описание характеристик виртуальных устройств
Теперь следует указать, на каком из имеющихся виртуальных устройств нужно тестировать созданное нами приложение. Для этого из контекстного меню проекта выбираем пункт Run as → Run configurations и в появившемся диалоге на вкладке Target выбираем виртуальное устройство (рис. 9).
Рис. 9. Выбор виртуального устройства для запуска приложения
Теперь можно запустить приложение, выбрав из контекстного меню проекта пункт Run as → Android Application. За процессом запуска можно следить на вкладке Console среды разработки (ее можно при необходимости переключить в режим отладки, в котором следует изменить размеры окон так, чтобы эта вкладка занимала на экране побольше места).
Если все было сделано без ошибок, будет запущен эмулятор смартфона и через какоето время (по моему опыту и опыту многих коллег, иногда довольно продолжительное) на экране эмулятора появится пиктограмма приложения, а затем и само приложение (рис. 10).
Рис. 10. Готовое приложение, запущенное на виртуальном устройстве
Итак, мы создали простейшее приложение с помощью ADT. Конечно, с помощью кодогенераторов можно за то же время создать приложение с большей функциональностью, но, как мы уже обсуждали, подобный подход хорош только для определенного круга задач. Выбор инструментов — кодогенераторов или профессиональных средств — зависит в первую очередь от цели создания приложения, а также от совокупности таких факторов, как бюджет, время, наличие умения и желания программировать.
Естественно, в рамках одной статьи невозможно подробно рассказать ни об архитектуре платформы Android, ни о полном составе проекта приложения для нее, ни об особенностях среды разработки — ведь в данном случае мы имеем дело не с сервисом, упрощающим создание приложений непрограммистами, а с достаточно сложным профессиональным инструментом. Поэтому, завершая наш краткий обзор ADT, отметим, что в последнее время было издано немало книг, посвященных разработке для этой платформы, а также перечислим некоторые онлайновые ресурсы, полезные для читателей, заинтересовавшихся данной темой:
- http://developer.android.com — ресурс компании Google, автора платформы. Здесь можно найти исчерпывающую информацию о платформе и об Android SDK;
- http://startandroid.ru/ — хороший русскоязычный учебный курс;
- http://developer.alexanderklimov.ru/android/ — неплохой учебный курс, рассчитанный на начинающих разработчиков.
***
Тему профессиональных инструментов для создания мобильных приложений мы продолжим в одном из ближайших выпусков нашего журнала.