Android studio eclipse netbeans

Выбор среды разработки для платформы Android

Илья Дергунов

Автор статьи. ИТ-специалист с 20 летним стажем, автор большого количества публикаций на профильную тематику (разработка ПО, администрирование, новостные заметки). Подробнее.

Проблема

Использование инструментов сборки не вызывает трудностей, но программиро­вание с помощью текстового редактора происходит слишком медленно, чтобы стать обычным способом разработки. Как выбрать интегрированную среду разработки (IDE) для использования в проектах Android: Android Studio, Eclipse или другие?

Решение

Взвесьте “плюсы” и “минусы” каждого варианта, затем бросьте жребий. Попро­буйте каждый вариант для создания проекта разумного размера.

Обсуждение

В то время как в мире MS Windows доминирует единая среда разработки, а в мире Android есть единая среда разработки, которая является официальной, в более круп­ном Java-мире есть несколько сред, заслуживающих внимания.

Обзор IDE Eclipse

Eclipse — та интегрированная среда разработки созда­на IBM в первые дни языка Java, когда стало ясно, что его среда IDE Visual Age про­существует недолго (среда Visual Age была написана на языке Smalltalk, а не на Java). По моему опыту преподавания языка Java, около 80% разработчиков на языке Java используют среду Eclipse, и эта цифра остается довольно устойчивой на протяжении многих лет. Spring Tool Suite (STS) и различные среды разработки приложений ком­пании IBM основаны на Eclipse и входят в это число.

Обзор Android Studio / IntelliJ Idea

Android Studio — официальная интегрированная среда разработки на платформе Android, поддержива­емая компанией Google. Она основана на интегрированной среде разработки IntelliJ Idea, которая существует уже давно, но имела относительно небольшой уровень ис­пользования в сообществе Java, пока компания Google не включила в нее свой под­ключаемый модуль и не переименовала эту версию в Android Studio.

Обзор NetBeanse

Net Beans — эта интегрированная среда разработки была написана в небольшой компании, которую в 1999 г. приобрела компания Sun Microsystems. В свою очередь, в 2000 г. компания Sun Microsystems была приобрете­на компанией Oracle. Среда NetBeans уже давно является официальной интегриро­ванной средой разработки приложений, но ее использование затмила среда Eclipse (помните: затмение (eclipse) возникает, когда другое тело проходит перед Солнцем). Относительно немногие разработчики используют NetBeans специально для плат­формы Android, поэтому, чтобы не отвлекаться на детали, среда NetBeans в моем блоге не рассматривается.

В течение первого десятилетия существования платформы Android компания Google рекомендовала использовать интегрированную среду разработки Eclipse со своим собственным подключаемым модулем под названием Android Development

Android Development Tools (ADT) и AndMore

Tools (ADT). Компания Google предлагала его и как автономный модуль (для тех, у кого уже была установлена среда Eclipse), и как пакет, интегрированный в среду Eclipse. Примерно в 2013 г. компания Google объявила о переключении на сре­ду Android Studio на базе IntelliJ. Вскоре после этого организация Eclipse Foundation объявила, что небольшая команда взяла за основу модуль Android Development Tools (ADT), поскольку он имел открытый исходный код, и объединила его с некоторыми подключаемыми модулями. Этот новый модуль называется AndMore. Среда Eclipse, дополнен­ная модулем AndMore, эквивалентна по функциям и совместима со средой Eclipse, дополненной модулем ADT, но некоторые имена в файлах проекта должны быть из­менены. Обратите внимание на то, что некоторые организации мо­гут по-прежнему использовать модуль ADT. Если вы принадлежите к этому лагерю, то можете (как правило) просто поставить имя ADT везде, где мы говорим о модуле AndMore.

Выбор IDE для Android

Кроме того, на выбор интегрированной среды влияют структура вашего проек­та и инструмент сборки. Среда Eclipse поддерживает одноуровневый проект, кото­рый обычно требуется для приложения, с дополнительным вторым проектом для тестирования, если вы используете официальную платформу тестирования модулей Android. Модуль ADT (и, следовательно, AndMore) не требует внешнего инструмента построения; он содержит все необходимое для создания любого типа приложений для платформы Android. Он должен содержать только два файла про­екта, которые должны храниться в системе управления версиями исходного кода: .project и .classpath . Также можно контролировать каталог файлов .settings , но он сильно меняется, поэтому его можно легко игнорировать. В среде Eclipse существует даже интерфейс прикладного программирования для манипулирования структурой проекта. Поскольку существуют только два файла, о взломе проек­та путем редактирования файлов конфигурации не может быть и речи. Кроме того, среда Eclipse хорошо поддерживается инструментом сборки Maven с использованием подключаемых модулей М2Е (Maven Eclipse) и M2E-Android (вам понадобятся оба). Однако эта настройка может быть немного причудливой.

Читайте также:  Проверка сети для андроида

С другой стороны, среда Android Studio использует лабиринт файлов проекта. Ниже приводится список файлов (за исключением исходного кода вашей програм­мы!) в проекте, созданном в среде Android Studio 2.0.

Похоже, что среда Android Studio предлагает около 30 файлов, чтобы сделать то, что делает среда Eclipse с помощью всего лишь нескольких файлов. По общему при­знанию, не все из них должны храниться под контролем источника, но какие имен­но? Чтобы ответить на этот вопрос, загляните в файл .gitignore в проекте, созда­ваемом в среде Android Studio 2.x; в нем перечислены файлы, которые не должны включаться в систему управления версиями исходного кода.

Среда Android Studio также ожидает, что каждый проект имеет дополнительный уровень структуры каталогов, называемый арр (от слова application (приложение)), для обслуживания относительно немногочисленных приложений, которые имеют несколько модулей, таких как библиотеки. В среде Eclipse вы просто заставляете проект использовать библиотеку. Дополнительная структура каталогов, помещенная в пути имен экземпляров Studio, означает, что каталог, в котором создается проект Studio, не соответствует старой структуре проекта Maven и что вы не можете исполь­зовать старую знакомую команду grep -r шаблон имя_проекта /src . Вы должны помнить, что каждый раз нужно дополнительно набирать строку арр/ . Это кажется безобидным, но раздражающим недостатком. Конечно, люди, которые часто исполь­зуют несколько проектов, но забывают создавать их по-отдельности, начиная работу, будут ценить то, что среда Studio делает что-то за них.

Следует также учитывать скорость. Обе среды обеспечивают довольно быст­рый ввод кода. Поскольку среда Studio не является самодостаточной интегрирован­ной средой разработки, а зависит от системы сборки Gradle, она работает намно­го медленнее, но ожидается, что версия Studio 2.x будет значительно улучшена в этом отношении. У разных людей разные идеи о том, как измерять скорость (были опубликованы разные результаты), поэтому целесообразно изучить эту проблему самостоятельно на соответствующем аппаратном обеспечении.

Среда Eclipse предоставляет одно окно Package Explorer (Проводник пакетов) на ос­нове дерева, поэтому вы можете легко перемещать, копировать или сравнивать фай­лы из разных проектов. Среды IntelliJ и Studio открывают каждый проект в новом окне и по умолчанию закрывают предыдущий.

Таким образом, между ними есть много различий, но также и много очевидных сходств. Это похоже на покупку автомобиля: автомобили делают компании GM, Ford, Chrysler, Tesla, BMW, Toyota и многие другие, но вам нужно выбрать один. Тем не менее выбор среды IDE не такой уж и исключительный. Что, если вам понравятся обе среды? Вы можете использовать Eclipse для обычной работы на языке Java и IntelliJ / Android Studio для работы на платформе Android, особенно если вам нужна современная поддержка Android, хотя переключение туда и обратно может быть утомительным. Можно даже настроить ваши проекты на платформу Android и открыть в обеих средах IDE — мы сделали это для большинства проектов в ре­позитории примеров. Однако мы не рекомендуем данное мероприятие в качестве общей практики.

Кстати, если вы запустите обе среды, обязательно настройте их для совместно­го использования одной и той же папки SDK — реальных инструментов платформы Android, библиотек и образов эмулятора, — тогда вам не придется обновлять все дважды.

В качестве еще одного способа для опытного пользователя Eclipse можно работать в среде Android Studio, используя при этом комбинации клавиш, которые заставят эту среду работать как Eclipse, хотя многие из параметров комбинаций клавиш там не совсем правильные, и вам придется немного поиграть с ними. И если вы это сде­лаете, а другой разработчик в вашей команде окажется пользователем среды Studio или базовой среды IntelliJ, то вы оба проиграете при парном программировании.

Заключение

Если вам нужна лучшая поддержка новых функций, то среда Android Studio мо­жет быть лучшим выбором. Если вы хотите, чтобы среда IDE широко использовалась в сообществе Java, то лучшим выбором может быть Eclipse. Правильного и быстрого ответа на этот вопрос нет.

Источник

Разработка под Android в NetBeans IDE без плагинов. Часть 1

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

К счастью, Google также предоставляют систему сборки, которая работает независимо от имеющейся в наличии IDE. А это означает, что можно настроить любой редактор для работы с приложениями Android. Лично я предпочитаю писать код на Java в NetBeans IDE и хочу поведать о том, как его можно настроить для этого. Есть такие плагины, как nbandroid, но разрабатывается он нерегулярно, энтузиастами, так что есть смысл воспользоваться гибкостью NetBeans и задействовать официальную систему сборки напрямую из редактора.

Читайте также:  Андроид как убрать стандартную

Создание нового проекта

При создании нового проекта, к сожалению, придётся сделать больше действий, чем можно было бы сделать в Eclipse, но это нужно сделать всего лишь один раз. Создание проекта делается в три шага:

  1. Создание файлов для сборки из командной строки;
  2. Создание проекта в IDE;
  3. Добавление дополнительных команд (по вкусу).

Создание файлов для сборки

Прежде всего, необходимо создать новый проект через командную строку. Я буду исходить из предположения, что в PATH уже затесалась папка /tools . Проект создаётся следующей командой:

android create project -n -t android- -p -k -a

На всякий случай поясню, что уровень API — это тот самый, с помощью которого мы будем компилировать проект. То есть если проект в целом рассчитан на уровень API 10, но есть некоторые возможности, которые используются только на аппаратах с уровнем 15 и выше, то нужно именно 15 и выставить. В AndroidManifest.xml , кстати, эта 15 не засветится, там будет только 10 как минимально необходимый уровень API.

Предположим, что наш проект создаётся для Android 4.0.3 (это уровень 15) и называется KillerApp. Тогда нужно будет ввести следующее:

android create project -n KillerApp -t android-15 -p KillerApp -k com.damageinc.killerapp -a MainActivity

После этой команды в папке проекта завелись все нужные нам файлы: конфигурационные файлы и, самое главное, файл сборки. На этом работа с командной строкой закончена, и мы больше её не увидим. Теперь осталось поколдовать в IDE.

Создание проекта в IDE

    На экране создания нового проекта в NetBeans понадобится пункт Java Free-Form Project, с помощью которого мы растолкуем IDE, где брать файл сборки.

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

А вот теперь надо правильно прописать задания сборки, чтобы IDE знала, что запускать, когда мы заходим собрать проект. Сборка в системе осуществляется заданием debug. Это немного странно выглядит, но причина такого названия очень простая: это задание создаёт сборку для отладки, подписанную соответствующим сертификатом. Соответственно, есть задание release, до которого мы ещё доберёмся. Запуск проекта в нашем случае означает сборку и установку, что означает выполнение задания install после сборки. Там ещё приписано задание launch , которого в стандартной системе нет, но мы его сделаем и сами. Очистка — это, вполне ожидаемо, clean, а тестировать в Android нужно через отдельный, тестовый проект, поэтому то, что находится в том поле, можно смело стирать.

На следующем экране нужно добавить папку gen к папкам исходников, потому что именно в этой папке будет находится файл R.java .

Теперь настраиваем подсказки по коду. Прежде всего, важно снять флажок разделения папок с исходниками, иначе IDE будет думать, что файл R не должен упоминаться в коде нашей программы, поскольку лежит в отдельной папке. Также нужно добавить правильную платформу Android в список библиотек, в нашем случае это /platforms/android-15/android.jar .

И, наконец, последний шаг, добавляем папку bin/classes , чтобы IDE знала, где искать скомпилированный код. В принципе, этот шаг не обязателен, и на него можно смело наплевать. Но для полноты картины я сделаю и его, чтобы NetBeans показывал, какие файлы были недавно изменены и ещё не скомпилированы.


Добавление дополнительных команд

Эти три задания нам позволяют делать кое-какие весьма полезные вещи. rebuild-resources позволяет сгенерировать файл R (который в Eclipse, кстати, нередко куда-то исчезает или не обновляется вовремя). launch даст нам возможность запускать приложения, а release-and-save позаботится о том, чтобы при сборке финальной версии она сохранилась в отдельной папке под соответствующим именем вместе с картой методов ProGuard. Ещё я люблю добавлять такие строчки, чтобы после сборки проигрывалось уведомление:

Разумеется, этот конкретный вариант звука годится только для Windows, для других ОС стоит выбрать другой файл. Теперь осталось добавить эти задания в контекстное меню в NetBeans. В свойствах проекта на вкладке Build and Run мы уже заранее доработали пункт Run Project заданием launch в конце. В пользовательские элементы контекстного меню я добавил остальные только что сделанные задания:

Теперь в конекстном меню проекта весь букет необходимых нам команд. Можно запустить эмулятор или подключить смартфон, запустить Run и смотреть, как всё собирается и само запускается. Осталось сделать последние штрихи и включить обфускацию при сборке финальной версии, раскомментировав строчку в файле project.properties :

Также в ant.properties стоит прописать строчки для подписи финальных сборок:

Читайте также:  Elder sign для андроида

Вот теперь у нас проект готов к работе.

Как работает система сборки в Android

На самом деле, системы сборки в Android на данный момент сейчас уже две: одна основана на ant, а другая — на Gradle. В данном конкретном случае мы пользуемся системой ant. Система с Gradle разрабатывается параллельно с новым редактором, идущим на замену Eclipse — Android Studio. Эта система сборки, думаю, пригодится для отдельной статьи.

Возвращаясь к ant, в папке проекта лежат следующие файлы:

  • ant.properties
  • build.xml
  • local.properties
  • proguard-project.txt
  • project.properties

Самый важный файл здесь — это, разумеется, build.xml . На самом деле, это лишь маленький хвостик основной системы, и всё, что он делает — это загрузка свойств из файлов с расширением properties и вызов основной системы, располагающейся в самом SDK.

local.properties содержит всего лишь одно свойство: расположение папки с SDK. Этот файл нужно занести в список исключений системы контроля версий, потому что он содержит настройки, специфические для отдельной машины. Например, у меня под Windows этот файл содержит строчку

На самом деле, можно создать переменную окружения ANDROID_HOME с содержимым переменной из этого файла и благополучно отправить файл в мусорку. Главное, не забудьте после этого перезапустить NetBeans.

С ant.properties мы уже познакомились, там хранятся вспомогательные переменные вроде расположения хранилища ключей. Также есть файл project.properties . После действий, описанных в создании проекта, там есть только строчки об уровне API Android, для которого собирается проект, и о том, где искать файл конфигурации ProGuard. Когда мы будем добавлять в проект библиотеки, строчки о них окажутся там же.

Наконец, файл proguard-project.txt , который, как следует из названия, содержит указания ProGuard. Он изначально пуст, но это вовсе не значит, что ProGuard будет работать вхолостую, поскольку в папке SDK уже есть заранее записанная конфигурация (помните раскомментированную строчку о ProGuard?), а здесь мы можем её конкретизировать. Например, я лично люблю, помимо прочих, добавлять строчки

-renamesourcefileattribute MyProject
-keepattributes SourceFile,LineNumberTable

Они в дальнейшем помогают собирать отчёты об ошибках, поскольку теперь есть точные данные о том, какая строчка кода в проекте вызывает падение или исключение.

Также build.xml загружает файл custom_rules.xml , если он есть, в котором мы и добавили все необходимые нам задания. Стоит взглянуть на задания ещё раз.

Эти строчки взяты просто из системы сборки SDK. К сожалению, там они не вынесены в отдельное задание, поэтому пришлось делать это самостоятельно. Интереснее взглянуть на другие два задания:

С помощью XPath здесь достаются параметры версии и дальше с их помощью генерируются имена файлов. В обычном ant поддержки XPath нет, так откуда же он тут взялся? В Android SDK Google добавили свои собственные инструменты для того, чтобы работать с приложениями было удобнее. Многие из их инструментов сводятся к запуску определённых файлов из SDK, но есть и те, которые облегчают написание файлов сборки, такие как xpath . Ещё одним полезным инструментом, например, является if , делающий именно то, что делает соответствующая конструкция в языках программирования: выполнение того или иного задания в зависимости от условия.

Второе задание тоже использует xpath , на этот раз задача немного сложнее:

Необходимо найти активность, которая определяет в своем фильтре намерений категорию android.intent.category.LAUNCHER — именно так в Android определяются активности, которые должны показываться в меню. Их может быть и несколько (хотя это бывает редко), поэтому задание берёт первую из них.

Есть и ещё одна загвоздка. Активности декларируются в AndroidManifest.xml либо записью с полным именем, либо только именем класса с точкой впереди, если активность лежит в главном пакете. По крайней мере, так говорит документация. Только вот проблема в том, что Eclipse и прочий инструментарий позволяет точку опускать и просто писать имя активности, когда она находится в главном пакете. Android-то такое попустительство терпит, а вот команда, запускающая приложения, уже нет. Приходится добавлять точку, когда её не хватает. Вот тут нам и поможет задание if , недавно мной упомянутое, и регулярные выражения.

Также было ещё совсем простое задание, которое воспроизводит звук. В нём был использован один из шести хуков, которые дёргаются из файла сборки в SDK:

  • -pre-build
  • -pre-compile
  • -post-compile
  • -post-package
  • -post-build
  • -pre-clean

Хуки отражают этапы, через которые проходит сборка программы: компиляция библиотек, генерирование кода (RenderScript, aidl, R, BuildConfig), компиляция проекта, упаковка APK, подпись и zipalign. Соответственно, -pre-build вызывается прежде, чем начнутся все эти действия, -pre-compile непосредственно перед компиляцией самого проекта, -post-compile — между компиляцией и упаковкой, -post-build — после упаковки, но до подписи, и -post-build вызывается в самом конце. Ну а когда вызывается -pre-clean , думаю, понятно из названия.

Источник

Оцените статью