Java Development Kit(JDK)
Java Development Kit, сокращенно JDK – это бесплатно распространяемый корпорацией Sun комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE). В состав JDK не входит интегрированная среда разработки на Java (IDE), поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки.
Дополнительные возможности уже предоставляют современные интегрированные среды разработки на Java, такие, как NetBeans, Sun Java Studio Creator, IntelliJ IDEA, Borland JBuilder. Они опираются на сервисы, предоставляемые JDK, и вызывают для компиляции Java-программ компилятор командной строки из комплекта JDK. Поэтому эти среды разработки либо включают в комплект поставки одну из версий JDK, либо требуют для своей работы предварительной установки JDK на машине разработчика.
С некоторых пор фирма Sun предоставляет полные исходные тексты JDK, включая исходные тексты самого Java-компилятора.
Среда программирования Eclipse
Eclipse - это интегрированная среда разработки (Integrated Development Environment, далее IDE) с открытым исходным кодом (далее OpenSource). Проект был запущен в ноябре 2001 года, когда IBM передала исходный код своего Websphere Studio Workbench стоимостью 40 миллионов долларов на OpenSource и сформировала консорциум Eclipse для управления продолжающейся разработкой.
Цель создания Eclipse была сформулирована следующим образом: "разработать богатую, полнофункциональную индустриальную платформу коммерческого качества для разработки сильно-интегрированных инструментов.
Платформа Eclipse в сочетании с JDT включает многие из возможностей, которые включаются в коммерческие IDE: редактор с подсветкой синтаксиса, инкрементальная компиляция кода, потокобезопасный отладчик, навигатор по классам, менеджеры файлов и проектов, а также интерфейсы к стандартным системам контроля исходных текстов, таким как CVS и ClearCase.
Проект Eclipse представляет собой первую столь мощно поддержанную мировым IT-сообществом попытку создания единой открытой интегрированной платформы разработки приложений, обладающей надежностью, функциональностью и уровнем качества коммерческого продукта.[7]
Android SDK
Android SDK- это эмулятор мобильной платформы Android, которая используется в смартфонах. SDK (англ. Software Development Kit) – набор средств и инструментов разработки, позволяющий специалистам создавать программное обеспечение для определенных аппаратных платформ, операционных систем, фреймворков и прочих программных продуктов. Как правило, программист получает SDK непосредственно от производителя целевой платформы или технологии. Скачать SDK также с официального сайта [1].
Android Development .Tools (ADT)
По умолчанию Eclipse не особо годится для разработки Android-приложений. ADT – плагин, который настраивает среду разработки для использования Android SDK и добавляет возможность удобной разработки.
Основные элементы приложения
Приложения для Android состоят из компонентов, которые система может запускать и управлять ими так, как ей удобною
Всего в Android-приложениях существует четыре типа компонентов:
− Activity;
− Service;
− Broadcast Receiver;
− Content Provider.
Взаимодействие этих компонентов осуществляется с помощью объектов Intent.
Activity
Activity представляет собой внешний пользовательский интерфейс для одной операции, которую может совершить пользователь. Все activity текущего приложения работают вместе и формируют единый пользовательский интерфейс, однако при этом они независимы между собой. Каждое из них реализовано как подкласс базового класса Activity, обеспечивающего создание окна, в котором программист может поместить визуальный интерфейс.
Приложение может состоять из всего одного activity или сразу из нескольких. Какими именно будут activity и сколько их будет, зависит от конкретного приложения и его дизайна. Как правило, одно из activity помечается как первое, это означает, что оно будет предоставлено пользователю при запуске приложения. Одно activity может запускать другое. Таким образом, переход от одного activity к другому осуществляется тогда, когда текущее activity вызывает следующее.
Каждое activity предоставляет окно по умолчанию. Обычно окно создается в полноэкранном виде, но оно также может и не занимать весь экран и находиться поверх других окон. Activity также может задействовать дополнительные окна – например, всплывающее диалоговое для взаимодействия с пользователем в процессе работы activity, или окно для предоставления текущей информации при выборе какой-нибудь важной опции.
Визуальное содержание окна строится с помощью иерархии визуальных компонентов (или представлений) – объектов, производных от базового класса View. Каждый компонент представляет собой просто прямоугольное пространство внутри окна. Родительские компоненты содержат дочерние и организуют их расположение. Иерархию компонент можно представить в виде дерева, а те элементы, которые находятся в самой нижней его части (“листья”) и не имеют дочерних компонент, отрисовывают прямоугольные области и ожидают действий пользователя на этом участке. Таким образом осуществляется интерактивное взаимодействие с пользователем.
В операционной системе Android уже есть набор готовых визуальных компонент, которые доступны для использования разработчиками. Набор включает в себя кнопки, текстовые поля, полосы прокрутки, меню, флажки-переключатели и многое другое. Для того чтобы поместить в окно такую иерархию, нужно вызвать метод Activity.setContentView(). Параметром метода является экземпляр класса View, лежащий в корне иерархии[4].
Services
Services(сервисы) представляют из себя компоненты, которые работают в фоновом режиме. Он, как правило, требуется для длительных операций или для обеспечения работы удаленных процессов, но в общем случае это просто режим, который функционирует, когда приложение не в фокусе. Сервис сам по себе не предоставляет пользовательского интерфейса, то есть с пользователем не взаимодействует, а запускается, управляется и связан с другими компонентами, например, activity. Также может запускаться вместе с системой. Сервисы реализованы в виде подкласса Service.
Content providers
Данный компонент управляет наборами данных, которые приложения предоставляют другим. Эти данные могут храниться в файловой системе, базах данных SQLite, в сети, или в любом другом постоянном месте, к которому приложение может иметь доступ. Посредством content provider другое приложение может запрашивать данные и, если выставлены соответствующие разрешения, изменять их.
Например, система Android содержит content provider, который управляет пользовательской информацией о контактах. Он позволяет любому приложению, обладающему соответствующими правами вызывать составляющие этого компонента для того, чтобы считывать, записывать или изменять информацию о конкретном человеке. В более общем случае, content provider можно использовать для чтения и записи данных, которые используются приложением и не являются открытыми для других. И для того, чтобы другие приложения могли совершить операции с данными, им необходимо предоставить стандартный набор API.
Broadcast receivers
Этот компонент отвечает за распространение общесистемных сообщений, отслеживание и реагирование на действия. Многие оповещения идут от системы, например, сообщения о том что заряд батареи мал или экран выключен. Приложения также могут инициировать такие оповещения, например, сигнализировать о том, что информация загружена на устройство и доступна к использованию.
Как и сервисы, broadcast receiver не предоставляет пользовательского интерфейса, однако, он способен создавать уведомления в строке состояния, чтобы предупреждать пользователя о том, что произошло какое-то событие. Однако чаще broadcast receiver взаимодействует с другими компонентами для того, чтобы самому выполнять минимальный объем работы. Так, он может инициировать сервисы для выполнения действий, привязанных к какому-то событию. Компонент реализуется как подкласс BroadcastReceiver и каждая передача представляется как объект класса Intent[5].