Операционная система Android - это операционная среда для различного рода электронных мобильных устройств (интернет-планшетов, смартфонов, КПК, нетбуков, цифровых проигрывателей), которая базируется на ядре Linux v2.6. Изначально данная ОС была ориентирована на использование только на мобильных телефонах, однако широкая функциональность и надежность вкупе с вычислительными сервисами позволили импортировать ее и на другие электронные устройства. Данная статья является введением в программирование под данной операционной системой. Прочитав ее, вы научитесь писать простые программы для платформы Android.
Введение
В настоящее время двумя самыми распространенными и удобными мобильными платформами являются небезызвестным BlackBerry и iPhone. Первая незаменима для корпоративного использования за счет удобного пользования электронной почтой, текстовыми сообщениями и множеством удаленных сервисов. iPhone больше относится к классу потребительских устройств, и сохраняет лидирующее положение на рынке за счет удобства работы, навороченности и "брендовости". Развивающаяся платформа Android за счет своей гибкости может проявить себя как на устройствах для корпоративных пользователей, так и на крутых дорогих моделях. Этой операционной системе пророчат стать связующим звеном между развлечениями и работой.
Большинство устройств, поддерживающих сеть, работают на операционных системах, в основе которых лежит ядро Linux. Открытый исходный код, высокая надежность и устойчивость к сетевым атакам, а также легкость в развертывании - вот что позволило таким системам завоевать доверие и признание. Интерфейс общения с пользователем вышеназванных устройств основан на HTML, поэтому ее легко просмотреть с помощью браузера для персонального компьютера или Macintosh. Но не всегда возможно с помощью компьютера управлять устройством. Например, бытовые приборы. Что, если бы они имели сенсорный LED дисплей и работали под управлением ОС Android? Это бы значительно упростило процесс приготовления еды либо стирки.
Статья имеет целью рассказать о платформе Android и возможностях ее использования для стационарных и мобильных приложений. Также мы приведем и разберем пример простого Android приложения. Чтобы запустить приведенные в статье примеры, мы установим Android SDK, скачать который можно с нашего сайта. Исходные коды примеров вы найдете в статье.
Немного об истории появления и развития Android
"Отцом" данной платформы является группа Open Handset Alliance, целью которой было создать мобильный телефон, более совершенный, чем существующие. Кроме Google - главы этой группы - в команде также есть мобильные операторы, разработчики ПО и поставщики услуг, производители телефонов и комплектующих к ним, и, конечно же, маркетинговые компании. Android является центром мира open source (программного обеспечения с открытым исходным кодом).
Пионером среди телефонов, работающих на платформе Андроид, стал аппарат G1, детище производителя HTC, распространением устройства занялась компания T-Mobile. G1 был долгожданным - ведь он появился на рынке лишь через год после того, как о нем стали ходить слухи. На то время все программное обеспечение для этого устройства разрабатывалось на развивающемся SDK. Перед выпуском G1 группа разработчиков Android презентовала первую версию SDK v1.0, после чего постепенно начали разрабатываться новые и новые утилиты для Андроид.
Конечно же, было необходимо создать почву для развития новой платформы. Именно поэтому разработчики решили устроить конкурс, который подогрел бы интерес к написанию приложений для Android. Этим конкурсом был "Конкурс разработчиков для Android", проведенный дважды. Оба "Конкурса разработчиков для Android" были спонсированы Google. Вознаграждением для победителей были миллионы долларов. Следующей вехой в истории развития Android стало открытие Android Market, которое последовало вслед за выходом G1. Данный Интернет-магазин позволил пользователям скачивать и устанавливать приложения на свой смартфон прямо из Интернет. Новая мобильная платформа всего за полтора года вышла на рынок.
Мобильная платформа Android
Android благодаря своей мобильности, многофункциональности и широким возможностям, ничем не уступает многим платформам для персональных компьютеров. Данная платформа основана на ядре Linux и содержит в себе следующие компоненты:
- окна
- представления
- виджеты, которые способны отображать общие элементы, например, поля редактирования, выпадающие меню и списки.
Также в "состав" платформы входит браузер, базирующийся на Webkit - open source технология, используемая и в браузере Safari мобильного аппарата iPhone.
Данная мобильная платформа включает как возможность пакетной передачи данных благодаря Wi-Fi, Bluetooth, так и обмен информацией с помощью мобильной связи - GPRS, EDGE, 3G и другие стандарты. Довольно популярной "фичей" является отображение адреса непосредственно в приложении благодаря сервису Google Maps. Также среди разнообразия программного обеспечения есть возможность определения координат текущего местоположения (GPS), положения в пространстве благодаря акселерометру, видео- и фотокамеры также есть, однако стоит заметить, что не все устройства оснащены данным оборудованием.
Хранение данных, графика и мультимедиа были двумя отраслями, в которых мобильные приложения изначально отставали от персональных компьютеров. Android отличился и здесь - он смог вырваться вперед благодаря возможностям встроенной дву- и трехмерной графики и использованию графической библиотеки OpenGL. Хранить данные на мобильной платформе Android также легко - известная база данных с открытым исходным кодом SQLite отлично справляется с данной задачей. На рисунке ниже вы можете видеть неподробную схему иерархии программного обеспечения платформы Android.
Архитектура приложений
Ранее мы уже упоминали о том, что Android базируется на ядре Linux. Программное обеспечение для Android пишется на скриптовом языке программирования Java и может выполняться на так называемой виртуальной машине. Отметим, что в данном случае используется не JVM, а Dalvik VM. Приложение работает в пределах экземпляра Dalvik VM, а он ограничен процессом, который управляется ядром Linux. Графически данная схема изображена на рисунке 2.
В каждом приложении на платформе Android обязательно содержится один или несколько элементов типов, которые перечислены ниже:
Действия (Activities)
Программы, имеющие графический интерфейс, реализованы при помощи действия. Действие возникает всякий раз, когда пользователь выбирает программу из списка программ или на главном экране.
Сервисы (Services)
Данный тип используется в приложениях, работающих длительное время (например, сетевой монитор или поиск обновлений).
Источники данных (Content providers)
Источник данных есть не что иное как сервер баз данных. Его предназначение - управлять доступом к хранимым данным, например, к базе данных SQLite. Для простых приложений источник баз данных не требуется. Для сложных же приложений, например таких, в котором к базе данных будет обращаться несколько приложений или действий, источник данных будет служить средством для организации доступа к данным.
Приемники (Broadcast recievers)
Приложения на Android могут реагировать на события (таковым можно считать получение SMS), а также обрабатывать элементы данных.
Развертка утилиты для Android происходит вместе с AndroidManifest.xml - файла, содержащего конфигурационную информацию. Эта информация позволяет корректно установить программу на телефон. Также в его "обязанности" входит включение необходимых имен, классов и типов событий, которые способно обработать приложение, а также разрешения, которые требуются для его работы. Например, если программе требуется доступ к сети (для загрузки файла или иного действия), то разрешение на это должно быть явно описано в манифесте. Такое разрешение могут иметь и другие приложения. Декларирование - это своего рода защита, которая позволяет уменьшить вероятность повреждения устройства из-за неправильно написанной программы.
Далее мы с вами рассмотрим среду разработки приложения для Android.
Инструменты
Для того, чтобы приступить к разработке приложений на Android, проще всего будет скачать и установить SDK Android и интегрированную среду разработки Eclipse. Разрабатывать свои программы для Андроид вы можете на всех современных популярных платформах – Microsoft Windows, Mac OS X, Linux.
Далее мы будем отталкиваться от того, что вы используете среду разработки Eclipse и дополнение Android Developer Tools for Eclipse. Выше уже говорилось о том, что приложения для Андроид пишутся на языке Java, а выполняются с помощью виртуальной машины Dalvik, а не Java VM. Написание программ на Java под Eclipse - это интуитивно понятный процесс, поскольку среда разработки Eclipse предоставляет огромный набор встроенных функций и готовых библиотек, а также подробную контекстно-зависимую справку и всплывающие подсказки к коду. После безошибочной компиляции Android Developer Tools построит и упакует приложение, снабдив его файлом AndroidManifest.xml.
Если же вы являетесь опытным программистом и хорошо разбираетесь в Android SDK, то сможете написать приложение под Android без Eclipse и дополнения Android Developer Tools.
Скачать Android SDK очень легко на нашем сайте – это zip архив небольшого размера. После скачивания архив распаковывается и далее следует стандартная процедура установки программы. Уже доступно несколько версий SDK. В набор SDK входят следующие файлы:
Android.jar
Java файл архива, в котором содержатся все классы, которые будут необходимы для разработки приложений.
Documentation.html, папка docs
Название файла говорит само за себя - в нем содержится документация к SDK. Кроме локальных версий, документацию также можно найти в Интернете. Основной формат документации – Javadocs. Она позволит разобраться в разных версиях SDK, а также ознакомит с общим руководством по разработке. В документации вы найдете и ссылки на сообщества программистов Android.
Каталог с примерами
В папке содержится подкаталог с исходными кодами примеров. Примеры - отличный старт для написания Android приложений. APIDemo продемонстрирует вам примеры различных программных интерфейсов.
Каталог инструментов
В данной папке находятся все инструменты командной строки Android-утилит. Самой часто используемой утилитой этого каталога является abd (Android Debug Bridge).
Usb_driver
В данном каталоге находятся файлы, необходимые только тем разработчикам, которые используют Windows. В частности каталог содержит все драйвера, необходимые для подключения IDE к устройствам, поддерживающим платформу Android.
Проверить свои программы вы можете, как просто запустив их под самим Android, так и запустив их в эмуляторе. Рисунок 3 содержит скриншот рабочего стола эмулятора Android.
ABD - отладочный мост Android
Главная функция утилиты abd принимает в качестве параметров несколько аргументов командной строки, которые расширяют возможности программы. Например, можно копировать файлы в телефон и из него. Также аргументы командной строки делают возможным подключение к устройству и давать простые команды. На рисунке 4 вы можете видеть окно abd, в котором показан результат подачи команды устройству, которое подключено к ноутбуку под управлением операционной системы Windows через USB порт.
Через консоль можно:
- Просмотреть конфигурацию сети. Сетевых соединений может быть несколько:
o lo - локальное подключение
o tiwlan0 - WiFi соединен с адресом, которые предоставил локальный сервер DHCP.
- Получить и просмотреть значение системной переменной среды PATH.
- Зайти под аккаунтом суперпользователя (root), выполнив команду su.
- Перейти в каталог с пользовательскими приложениями (/data/app).
- Отобразить список каталогов. Android-приложения это являют собой архивы. Их можно просмотреть с помощью WinZip, WinRar и других подобных программ. Расширение файлов - apk.
- Проверить доступность интернет сайтов при помощи команды ping.
Через abd также можно связываться с базами данных SQLite, запускать приложения и многое другое. Отличные возможности, особенно для программы, которая позволяет взаимодействовать с подключенным устройством.
Перейдем к следующему разделу, в котором мы наконец-то напишем простое Android приложение.
Создание простого Android приложения
В данном параграфе мы рассмотрим процесс создания простого приложения для Android. Суть примера проста - это обычная программа для новичков, которая выведет нам строку "Hello Android". Однако помимо текста мы также изменим цвет фона экрана на белый, таким образом, устройство можно будет использовать как фонарик. Полезно, хоть и не оригинально. Прежде чем двигаться дальше, загрузите исходный код с нашего сайта.
Для создания приложения в среде разработки Eclipse в меню выберите File->New->Android Project. После этого запуститься мастер создания проекта Android (сморите рисунок 5).
Следующим нашим шагом будет создание приложения с одним действием и макета интерфейса пользователя. Последний будет храниться в папке main.xml. В макете есть текстовый фрагмент, который мы будем заменять на Android FlashLight (фонарик Андроид). Листинг макета приведен ниже (см. Листинг 1).
Листинг 1. Макет Flashlight
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/all_white">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" android:textColor="@color/all_black"
android:gravity="center_horizontal"/>
>/LinearLayout>
В strings.xml создаем два ресурса цвета (см. Листинг 2)
Листинг 2. Цвет в strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Android FlashLight</string>
<string name="app_name">FlashLight</string>
<color name="all_white">#FFFFFF</color>
<color name="all_black">#000000</color>
</resources>
Для того, чтобы экран был белым, мы определяем цвет как all_white, эта текстовая константа соответствует значению триплета RGB #FFFFFF – это и есть чисто белый цвет.
В макете содержится единственное текстовое поле TextView, представляющее собой фрагмент статического текста (без возможности редактирования). Атрибут gravity задает выравнивание текста по горизонтали, а атрибут textColor - черный цвет.
Листинг 3, представленный ниже - это исходный код файла FlashLight.java.
Листинг 3. Flashlight.java
package com.msi.flashlight;
import android.app.Activity;
import android.os.Bundle;
public class FlashLight extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Создание кода происходит в мастере новых проектов:
- Данная часть пакета Java (название - com.msi.flashlight) импортирует два класса:
*класс действия
*класс пакета
- При инициировании этого действия вызывается метод onCreate, передающийся в savedInstanceState.
- Метод onCreate переопределяет метод одноименного класса действия. onCreate обращается к методу с таким же именем суперкласса.
- В файле main.xml определен макет UI, к которому относится метод SetContentView(). Значение переменных, содержащийся в файлах main.xlm и strings.xml, автоматически передается константам из файла R.java. данный файл не следует редактировать напрямую, поскольку он сам изменяется после каждой сборки.
После запуска приложения экран устройства становится белым, а в центре вверху размещается текст (см. рисунок 6).
Значения переменных для настройки файла AndroidManifest.xml для программы FlashLight содержаться в листинге 4.
Листинг 2. Цвет в strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Android FlashLight</string>
<string name="app_name">FlashLight</string>
<color name="all_white">#FFFFFF</color>
<color name="all_black">#000000</color>
</resources>
Напомним, что файл манифеста создается дополнением Android Developer Tools for Eclipse автоматически. Вам не требуется ничего писать вручную. Единственное, что будет полезно - поменять некоторые настройки, не удовлетворяющие вашим требованиям и задумкам.
Созданная нами программа не оригинальна и не является мощным приложением. Однако она очень полезна для тех, кто любит почитать ночью, не мешая близким светом ламп, или тем, у кого выключился свет.
Эпилог
В нашей статье мы постарались осветить основы создания приложений для Android платформы. Созданное нами с помощью среды разработки Android Eclipse небольшое приложение должно было пробудить в вас интерес к дальнейшему изучению этой еще относительно молодой платформы, которая имеет все шансы стать ведущей open source платформой будущего. Советуем вам посмотреть другие Android Eclipse xml примеры - разбирая чужой код, вы со временем поймете, что к чему и совсем скоро будете писать свои собственные Android приложения для личных нужд. Удачи вам в программировании и компиляций без ошибок!
ПОПУЛЯРНЫЕ ПРОГРАММЫ |
ПОПУЛЯРНЫЕ ИГРЫ
|
09 сентября 2011 г. 05 сентября 2011 г. 05 сентября 2011 г. 05 сентября 2011 г. 05 сентября 2011 г. 15 августа 2011 г. 14 августа 2011 г. 03 августа 2011 г. |
22 сентября 2011 г. 27 августа 2011 г. 27 августа 2011 г. 27 августа 2011 г. 27 августа 2011 г. 25 августа 2011 г. 25 августа 2011 г. 25 августа 2011 г. |
Комментарии