Главная » Разработка для Android » СРЕДА ECLIPSE ДЛЯ РАЗРАБОТКИ ПРОГРАММ ANDROID

0

 

Тема Eclipse довольно противоречива. Это история об огромном успехе программы, которая начиналась как свободный проект с открытым кодом. Eclipse – наиболее популярная интегрированная среда разработки (IDE) для Java. Среда Eclipse очень мощная и является центром богатейшей экосистемы настроек и производных продуктов, используемых при разработке программного обеспечения. По определенным причинам именно Eclipse стала тем ориентиром, для которого разрабатывается множество плагинов. Эти подключаемые модули приспосабливают Eclipse для написания именно таких программ, которые ориентированы на операционную систему Android. При этом Eclipse критикуют за некоторое неудобство для пользователя и за то, что ее сложно изучать.

Eclipse не похожа на большинство программ с графическим пользовательским интерфейсом, избавляющих пользователя от возможности активизации операций, которые потом не удается завершить. Разработчики Eclipse старались достичь максимальной мощности и модульности, не особенно уделяя внимание сглаживанию шероховатостей. Например, при запуске программы-примера вы, вероятно, сразу заметили, что Eclipse позволяет делать с вашими приложениями для Android такие вещи, которые, как кажется, не имеют особого практического смысла. Допустим, можно смоделировать работу приложения на сервере или в качестве апплета (рис. 5.1).

Рис. 5.1. Запуск Eclipse в качестве апплета, заведомо невыполнимая задача

Мы не будем ни критиковать Eclipse, ни приводить аргументы в ее защиту. Но мы объясним, почему Eclipse работает так, а не иначе. Рассмотрим, как компоненты Eclipse образуют единую отлаженную систему. Мы расскажем вам именно о том, что вы ищете, когда открываете Eclipse и начинаете писать в ней код. Вооружившись знаниями, вы сможете эффективно использовать Eclipse, и она покажется вам гораздо менее мудреной, чем на первый взгляд.

Документация, касающаяся Eclipse, приводится по адресу http://www.eclipse. org/documentation.

КОНЦЕПЦИИ И ТЕРМИНОЛОГИЯ ECLIPSE

В Eclipse используется собственная номенклатура (система наименований) с ключевыми концепциями, необходимыми для понимания данной среды. Эти концепции развивались на протяжении уже довольно долгой истории программы. Все началось с VisualAge – инструмента для разработки приложений, написанного на языке SmallTalk в середине 1980-х. Современные реализации Eclipse написаны на языке Java на основе фреймворка Equinox, в котором реализуется спецификация для модульных программных систем на Java. Эта спецификация называется OSGL OSGi – это способ указания в файле описания такой информации, как данные о жизненном цикле и зависимостях динамически загружаемых модулей, которые называются наборами (bundles). То есть Eclipse можно охарактеризовать как коллекцию модулей во фреймворке. При добавлении или удалении модулей существующие между ними зависимости по возможности будут удовлетворяться автоматически.

Более подробная информация о реализации Equinopx OSGi содержится по адресу http://eclipse.org/equinox/documents/quickstart.php.

Плагины

Когда вы занимаетесь настройкой инструментов для разработки программ в Android, вы добавляете в Eclipse плагины для разработки в Android (ADT). Плагины – это наборы, входящие в OSGi.

Комплект Android SDK добавляет в Eclipse два плагина. Для их просмотра перейдите в окно просмотра плагинов, выполнив Window ► Show View ► Other (Окно ► Показать вид ► Прочие) и раскрыв элемент Plug-in development (Разработка плагинов). Затем выберите из списка видов вариант Plugins (Плагины). Откроется список, показанный на рис. 5.2.

Рис. 5.2. Список плагинов, работающих в среде Eclipse

Плагины перечислены в алфавитном порядке. В верхней части списка вы найдете два плагина, необходимых для работы с Android SDK: com. android. іde. eclіpse. adt и com. android, іde. eclipse. ddms. He закрывайте список Plugins (Плагины).

Мы подробнее изучим данные плагины, в частности опишем, как они изменяют среду Eclipse. Кроме того, если внимательно рассмотреть список плагинов, то становится очевидно, что Eclipse на самом деле состоит из плагинов, вплоть до уровня реализации Equinox OSGi.

Рабочие пространства

В Eclipse содержится множество состояний. Они располагаются в рабочих пространствах (workspaces). При первом запуске Eclipse система спрашивает, хотите ли вы создать рабочее пространство. После этого при каждом запуске Eclipse работа начинается с того места, на котором вы остановились. Это относится ко всем проектам, файлам и видам, имевшимся в работе на момент закрытия программы. Предыдущее состояние среды считывается из рабочего пространства. Рабочие пространства в Eclipse реализованы на основе каталогов.

Любой проект относится к рабочему пространству. По умолчанию новые проекты и каталоги создаются в каталоге рабочего пространства. Даже если проект создается из источника, находящегося вне рабочего пространства, в рабочем пространстве остается большая часть метаинформации об этом проекте.

Рабочие пространства независимы друг от друга. Настройки, которые вы принимаете в одном рабочем пространстве, в нем сохраняются. Можно одновременно использовать несколько рабочих пространств, разделяя, таким образом, проекты, ориентированные на различные платформы, например проект для Rails и проект для Android. Можно использовать несколько рабочих пространств и одновременно запускать несколько экземпляров Eclipse. Предположим, вы применяете инструменты из арсенала Eclipse для разработки в каком-нибудь фреймворке веб-приложений и эти инструменты несовместимы с той версией Eclipse, в которой вы занимаетесь разработкой для Android. Отводя для разработки в Android отдельное рабочее пространство, вы можете поддерживать отдельные состояния и даже одновременно работать с обеими версиями Eclipse.

Среды разработки для Java

При написании программ для Java в Eclipse используются три различных окружения для Java.

Среда времени исполнения Java для Eclipse

Первой средой является та, в которой работает сама Eclipse. Если для Eclipse вам требуется использовать иную среду времени исполнения, то вы можете сконфигурировать окружение необходимым образом в файле eclipse. іnі, находящемся в каталоге, в котором установлена программа Eclipse. Если, например, в Eclipse начнется дефицит памяти, то вам придется откорректировать выбранную вами среду времени исполнения.

Компилятор Java

Второе рабочее окружение используется для компиляции кода. В состав Eclipse входит собственный пошаговый (инкрементный) компилятор для Java. Этот инструмент создает не только скомпилированные файлы .class для Java, но и сообщения об ошибках, отображаемые в редакторе Java. Кроме того, данный инструмент выдает информацию о типах объектов, которой Eclipse пользуется, например, при живом поиске, автозавершении и т. д. Среда конфигурируется при помощи узла Java ► Compiler (Java ► Компилятор) в окне Preferences (Настройки), но вы можете изменить этот стандартный порядок в конкретном проекте. Это можно сделать в разделе настроек проекта.

Кроме того, в данной среде содержится описание библиотек, на основании которых компилируется приложение. Если внимательно изучить команду Preferences ► Build Path (Настройки ► Путь сборки) для приложения Android, можно заметить, что в списке библиотек, на которых строится разработка проекта, нет среды времени исполнения Java. Вместо этого проект зависит от библиотек Android. Тем не менее, поскольку инструменты Android тесно связаны с Eclipse, вы не сможете изменить версию библиотеки Android непосредственно в подокне Build Path (Путь сборки). Это следует делать в подокне с настройками Android.

Среда времени исполнения приложения

Третьей является среда, в которой будут работать ваши приложения. В данном случае это один из эмуляторов Android. При настройке вашей среды разработки, которая происходит на этапе установки Android SDK или настройки плагина ADT, вы устанавливаете одно (или более) виртуальное устройство Android (AVD). Создавая новый проект Android, вы связываете его с одним из виртуальных устройств. Плагин использует соответствующий профиль, чтобы настроить как среду компиляции, так и эмулятор, применяемый для работы с приложением. Тем самым снижается вероятность несовпадения во время исполнения. Так, например, приложение, скомпилированное на базе библиотек для платформы Android 2.2, не сможет работать на платформе 1.5.

Проекты

С точки зрения разработчика, каждый проект Eclipse соответствует одной из создаваемых программ, то есть для разработчика программ для Android каждый проект – это программа Android. Внутри Eclipse проекты являются теми единицами, по которым плагины ориентируются, с каким программным обеспечением предполагается работать. При создании проекта Android в состав проекта входит в том числе информация, которую Eclipse применяет для выборки кода из различных плагинов и осуществления различных операций. Плагины ADT активируются для того, чтобы помочь создать проект с правильным набором файлов, а также структурой каталогов, принятой в приложениях Android. Если вы работаете с файлами в проекте для Android, то при открытии XML-файлов, в частности файлов компоновки и описания, используются правильно подобранные редакторы. При изменении файлов в приложении для построения программы вызываются подходящие компоновщики.

Компоновщики и артефакты

Во фреймворке Eclipse под компоновщиком (Builder) понимается средство, генерирующее из исходного кода артефакты. Артефакты – это файлы, построенные на основе файлов-исходников. В плагине Android для Eclipse определяется несколько новых компоновщиков, которые создают файлы DEX из файлов CLASS, константы Java, идентифицирующие ресурсы, описанные на XML, а также файлы АРК и осуществляют другие Android-специфичные операции, происходящие в процессе преобразования кода в устанавливаемый пакет. Eclipse заново генерирует устанавливаемый пакет всякий раз, когда вы вносите в программу изменения. Вы всегда должны иметь возможность приступить к запуску или отладке пакета.

Преобразование файлов CLASS, которые являются выводом компилятора Java, в файлы DEX, представляющие собой байт-код, интерпретируемый виртуальной машиной Dalvik, – это довольно красивый ход. Так вы можете программировать на Java, пользуясь высокоразвитыми инструментами редактирования и рефакто-ринга, предлагаемыми при работе на этом языке, а также применять и многочисленные другие инструменты, которые призваны повысить надежность и производительность кода Java.

Расширения

Расширения – это все те места, в которых плагины расширяют функционал Eclipse. Вы занимаетесь разработкой для Android, поэтому не будете непосредственно иметь дело с расширениями или изменять их, но, раз уж у нас открыта перспектива Plug-ins (Плагины), давайте кратко остановимся на некоторых расширениях, основанных на использовании плагинов Android. Так мы сможем точнее обрисовать взаимосвязи, существующие между плагинами ADT и остальными компонентами системы Eclipse. В перспективе Plug-ins (Плагины), показанной на рис. 5.2, дважды щелкните кнопкой мыши на плагине com.android.ide.eclipse.adt. Откроется вид Extensions (Расширения), в котором перечислены расширения плагина (рис. 5.3).

Рис. 5.3. Список расширений плагина ADT

Например, можно выбрать все расширения в org. eclіpse. core. resources. bui 1 ders, и в правой части вида Extensions (Расширения) вы увидите названия всех этих расширений: Android Resource Manager (Диспетчер ресурсов Android), Android Pre Compiler (Инструмент предварительной компиляции в Android) и Android Package Builder (Компоновщик пакетов Android).

Эти расширения необходимы для обработки ресурсов Android, предварительной компиляции на языке AIDL (язык определения интерфейса Android) в код Java; а также для превращения файлов CLASS, создаваемых при помощи компоновщика Java, в файлы DEX. И, наконец, для построения файла АРК, который может быть развернут на реальном или виртуальном устройстве Android.

Если развернуть элемент org. eclіpse. ui. editors, вы увидите список редакторов, которыми плагин ADT дополняет систему Eclipse: Android Manifest Editor (Редактор описаний Android), Android Layout Editor (Редактор компоновки Android), Android Menu Editor (Редактор меню Android) и Android XML Resources Editor (Редактор XML-ресурсов Android). Этими расширениями список не ограничивается. По величине списка можно судить, какой объем кода требуется для адаптации Eclipse к разработке программ для системы Android. Компонентов, которые мы здесь исследовали, вполне достаточно для понимания, как строятся программы Android и какие компоненты добавляются в среду Eclipse для редактирования Android-специфичных файлов, в том числе файлов описания на языке XML, макетов страниц и других ресурсов.

Если аналогичным образом рассмотреть другой плагин ADT, можно узнать, как в Eclipse добавляются функции инструмента Dalvik Debug Monitor Server (DDMS).

Ассоциации

Ассоциации описывают связи между файлами внутри проекта, в частности, как файлы связаны с редакторами, предназначенными для их обработки. Например, файлы Java в составе проекта Android обрабатываются в том же редакторе, что и файлы обычного проекта на Java, но XML-файлы обрабатываются в специфичном для Android XML-редакторе, например в редакторе файлов описания или в редакторе ресурсов Android. Этим редакторам известно, как работать с конкретными структурами, содержащимися в файлах того или иного формата, но в других сферах от них мало пользы, например, они не подходят для универсального редактирования, которое происходит в виде Outline (Визуализация). Если вы хотите открыть файл Android в ином XML-редакторе, который не входит в число вызываемых для работы редакторов, ассоциированных с данным файлом, можно переопределить имеющиеся ассоциации посредством команды Open With (Открыть с помощью). Эта команда находится в контекстном меню исходного файла, которое появляется при щелчке правой кнопкой на этом файле в виде Package Explorer (Просмотр пакетов).

Команда Open With (Открыть с помощью) предлагает на выбор ряд редакторов, которые, вероятно, смогут обработать выбранный вами файл. Если выполнить команду Others (Другие), то появится список всех редакторов, присутствующих в данной конфигурации Eclipse, а также будет предложено открыть файл во внешней программе.

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

  • Комментарии