Android представляет собой полноценную мобильную операционную систему компании Google. Но хотя данная технология бросает вызов другим мобильным ОС, включая Microsoft Windows Mobile и Apple iPhone, одновременно она обещает стать важнейшей платформой разработки корпоративных мобильных приложений.
Но для создания приложений для корпоративного сектора программистам необходимо знать технологии Java и Eclipse, а также основы мобильной архитектуры Android.
Платформа Android представляет собой набор программ. Она включает операционную систему, связующее ПО и различные приложения. Для создания специальных программ, соответствующих потребностям их компаний, разработчики могут использовать инструментарий Android SDK (code.google.com/android/). Такое ПО пишется на язые Java, а работает под управлением Dalvik — оригинальной виртуальной машины, которая запускается поверх ядра ОС Linux.
Предпочтительной интегрированной средой разработки для Android является открытая среда Eclipse.
Хотя создатели ПО могут напрямую использовать свой любимый редактор и инструменты командной строки, Google предоставляет им плагин, упрощающий процесс разработки в среде Eclipse. Соответственно для начала требуется установить Eclipse и Android SDK, а также плагин для Eclipse.
При написании программ для Android разработчики используют новейшую версию Java. В состав Android SDK входит полный набор библиотек Java, которые можно найти в пространствах имен android.app и android.os. Все эти классы содержатся в единственном файле jar.
Архитектура Android
Поскольку Android представляет собой операционную систему, она имеет некоторые функции, наличия которых следовало ожидать.
Одна из них — это что-то вроде сервиса, который, по сути дела, представляет собой программу, работающую в фоновом режиме. В качестве примера такого сервиса в официальной документации Google по Android приводится медиаплейер.
Кроме того, одно приложение имеет особую архитектуру, предложенную Google. Пользователю чаще всего придется иметь дело с Activity. В сущности, это активный экран. А каждое приложение может использовать несколько экранов. Интересно, что ОС управляет этими экранами Activity примерно так же, как работает оконная система на настольном ПК (например, сама Windows). Но для карманного устройства больше подходят экраны.
Менеджер окна в Android сохраняет экраны Activity для вашего приложения. Если разработчик предусмотрел вывод экрана Activity, а затем переключение на другой экран, первый будет сохранен операционной системой и поставлен в режим ожидания. Это, в свою очередь, позволяет с помощью кнопки “История” просматривать уже использовавшиеся экраны подобно тому, как это делается в веб-браузере.
Инженеры Google выбрали СУБД SQLite, которой они отдавали предпочтение и в прошлом (в архитектуре Gears). Я порадовался, услышав, что Android включает SQLite, поскольку это дает возможность работать с SQL, знакомой и простой в использовании архитектуре баз данных.
Однако для тех, кому нужно что-то более простое для доступа к стандартным данным, имеется другой источник контента, работающий с аудио, видео и списком контактов без SQL. Интересно, что этот источник контента упорядочивает свои данные с помощью унифицированных идентификаторов ресурсов (Uniform Resource Identifier, URI) — например, так: content://contacts/people/23.
Программисты имеют возможность разрабатывать также собственные источники контента. И независимо от того, какой из них будет задействован, приложения смогут совместно использовать их данные.
Намерения
Если вы уже читали информацию о ОС Android, то скорее всего слышали слово “намерение” (intent), употребляемое в том же смысле, что и в выражении “заявить о намерении” (broadcast an intent). Однако, по-моему, не все полностью улавливают его смысл, поскольку определения предназначаются для конечных пользователей, а не для разработчиков.
В сущности, намерения являются обычным способом упорядочить типичные виды деятельности приложений. Приложение для ведения списка контактов позволит разработчику просмотреть список, выбрать один из контактов и отредактировать его, добавить новый контакт и т. д. Google определила такие виды процессов как “просмотр” (view), “выбор” (pick) и “редактирование” (edit).
Смысл использования намерений — обеспечить позднее связывание. Взгляните на это дело следующим образом. Некто создал приложение (назовем его Приложение A), которое может использовать функции других приложений. В дальнейшем кто-то другой создал приложение, выполняющее функцию, которая может быть использована Приложением A. Назовем это второе приложение Приложением B.
Когда разрабатывалось Приложение A, программисты не могли знать о существовании Приложения B. Хотя авторы Приложения A оставили своим преемникам подробную спецификацию, инженеры из Google нашли более простой метод. Вместо статичного соединения программного кода они предусмотрели систему обмена сообщениями, которая выполняет позднее связывание. Эта система обмена сообщениями реализована в виде класса Intent и связанных с ним классов.
Благодаря этому приложения могут объявить о своих намерениях системе в целом. И здесь начинается самое интересное. Вы можете заменить стандартные приложения (такие как телефонная книга или список контактов) своими собственными. Таким образом, если вам, скажем, не нравится встроенное ПО телефонии, можете использовать другую программу, а установленное в качестве замены приложение объявит о своих намерениях.
Когда приложение сообщает о своих намерениях, оно может реагировать на различные события, которые могут быть вызваны не только человеком. Например, пользователь может написать специальную программу, которая запускается при поступлении телефонного звонка. Одна из прелестей заключается в том, что к этому моменту программа не обязательно должна уже быть запущена. Поскольку она объявила о своем намерении, ОС запустит ее в ответ на событие автоматически.
Оформление графического интерфейса пользователя
Документация Google знакомит вас с базовым приложением “Hello, World”. В данном примере используются плагин и приложение, с которым он связан по умолчанию. Разработчики могут потренироваться на них, если загрузили SDK и Eclipse.
Сегодня большинство инструментов разработчика позволяет легко создать пользовательский интерфейс (GUI) с помощью описания без применения программного кода.
Вместо вызова API-функции для добавления трех кнопок к какому-нибудь окну пользователь описывает эти три кнопки, а затем среда исполнения берет на себя всю тяжесть работы по считыванию этих описаний и добавлению к окну кнопок. Концепция, конечно, не новая. Разработчики программ для Mac и Windows испокон веку использовали файлы ресурсов, а сегодня у нас есть XML-файлы с описаниями наших GUI.
Как и следовало ожидать (особенно с учетом того, что для программирования задействуется язык Java), разработка GUI включает использование полного набора шаблонов, в том числе для таблиц и списков, а также универсальных (absolute) шаблонов.
Делайте все по инструкции
Чтобы понять, как работает Android, полезно ознакомиться со следующими тремя статьями из официальной документации в указанном порядке: ·
- анатомия приложения Android: code.google.com/android/intro/anatomy.html; ·
- модель приложения Android: Приложения, задачи, процессы и потоки: code.google.com/android/intro/appmodel.html; ·
- жизненный цикл приложения Android: code.google.com/android/intro/lifecycle.html.