2012-02-21 5 views
0

Я занимался многими исследованиями, чтобы попытаться настроить мою среду разработки, чтобы существенно упростить код. Я нашел много инструментов для Java/Android вокруг, и чем больше я занимаюсь исследованием или пытаюсь использовать больше, кажется, что я заканчиваю круги вокруг. Есть ли кто-нибудь, кто может дать мне солидные советы по этим вопросам? Многие мои результаты поиска устарели и/или частично. Они в лучшем случае получают мне одну часть настройки, но не работают хорошо друг с другом.Настройка жизненного цикла Android для разработки

Инструменты Я пытался интегрировать в моем развитии:

  • Code Coverage
  • TDD
  • Строительные инструменты
  • Dependency Injection
  • библиотеки совместимости
  • Continuous Integration

Я хотел иметь красивую структуру MVC для моего проекта с правильной областью определения объектов, поэтому я обнаружил Roboguice/Guice и используя интерфейсы/абстрактные классы, чтобы разоблачить API базовой реализации. Это я до сих пор хорошо работаю для меня, хотя и не для тестирования. Мне нужна панель действий, совместимая с более старыми SDK, поэтому я был приглашен на ActionBarSherlock в часы Android Office. Кажется, я могу добавить проект библиотеки Android.

После этого я обнаружил (по крайней мере, для текущей стабильной версии), вам нужно выполнить некоторые маневры, чтобы заставить его работать с Roboguice из-за библиотеки совместимости. Решение указывало на использование Maven для обработки зависимостей. Поэтому я перехожу к конвертации моего Android-проекта в проект Maven Android (это то, что я рассматривал в любом случае для более чистого управления зависимостью проекта). Теперь я считаю, что у меня есть Maven, Android и Eclipse (да, я забыл, Eclipse - это еще одна переменная в этом уравнении) для совместной работы. Но теперь у меня возникают проблемы с использованием библиотеки ActionBarSherlock при импорте через зависимость типа апклиба, как упоминает руководство. Невозможно «найти символ: класс FragmentActivity», например. Я пытаюсь создать новый проект библиотеки Android с помощью «target/unpack/apklibs /» Maven, но может получить только пустые Android-проекты, у которых отсутствует AndroidManifest.xml.

Затем я попытаюсь найти, как я мог бы добавить покрытие кода для моего набора тестов, и я нахожу Emma, ​​EclEmma и Robotium. Похоже, что только «работа» с Ant builds, в частности, я только что прочитал для Emma вещи, которые, по-видимому, требуют серьезных модификаций файлов Android по умолчанию и скрипта сборки для поддержки отчетов о покрытии кода. Я теперь не решаюсь продвигаться вперед по этим причинам, потому что я не хочу уничтожать свою базу разработки Android, преследующую старый совет, и для этого требуется Ant не Maven, но моя ранняя работа требует Maven.

Я не решаюсь задавать такой вопрос, потому что он кажется широким, но они являются важными инструментами для разработки производственного кода, поэтому люди должны их использовать, и я не могу понять, как получить хороший подмножество они работают одновременно. Есть ли какие-либо опытные советы по этой проблеме?

+0

Какую версию ABS вы используете? В ветке 4.0wip удалена странная перекомпиляция поддержки lib. Я бы предложил использовать эту ветку вместо стабилизации 3.x, потому что она поддерживает 4.0 и темы ICS – smith324

+0

@ smith324 Я пытаюсь переключиться с 3.5.1 на использование 4.0 RC1, я считаю, что вам еще нужно сделать исключение для Roboguice, чтобы не добавлять боевую библиотеку и использовать тот, который предоставляется через ABS. У вас есть какие-то советы для этого? У меня проблемы с работой. –

+0

Не уверен, что Roboguice, но используя ABS с фрагментами, требуется только поддержка lib, чтобы быть на пути создания ваших проектов. Поддержка lib pluggin для ABS (как проект библиотеки Android) также имеет его на пути построения, в основном они не мешают друг другу. Если в банке Roboguice включена поддержка lib, вы должны просто удалить ABS-код – smith324

ответ

1

Это скорее примечание стороны. Все инструменты, о которых вы говорите, замечательны, но, пожалуйста, помните, что все они оплачиваются путем добавления большого количества файлов в ваше приложение. Мое эмпирическое правило: не более 150-200 К лишнего веса. Поэтому у меня есть тенденция использовать простые и встроенные пакеты. Я получаю гораздо больше миль на хорошую повторную загрузку моего кода, и я очень придирчив к любому повторению кода. Итак, рефакторинг, рефакторинг и рефакторинг. Eclipse предоставляет прекрасные возможности для этого

+0

Да, спасибо за примечание. Я пытаюсь сохранить размер приложения, но я не уверен, что вы имеете в виду, когда говорите «все они стоят дорого ...», ActionBarSherlock (ABS) и Roboguice - единственное, что я вижу, что должно быть вокруг в конечном приложении, и ABS необходим для получения функционально совместимого ActionBar. И преимущества инъекции зависимостей, похоже, перевешивают добавленное пространство. Другие инструменты должны существовать только на стадии разработки и тестирования. –

+0

Вы не поверите, сколько людей там, которые не будут устанавливать или сохранять ваше приложение, потому что оно больше 1 МБ. Преимущества инъекции приносят пользу разработчику, пользователи могут заботиться об меньше – Bostone

+0

Я рад, что вы дали мне определенный размер, чтобы попытаться не превзойти (1 МБ), но польза от инъекции влияет на пользователей (хотя они и небрежны) , Я смотрю на возможность делать точный код, легко поддерживать и обновлять и тестировать. И это очень полезно пользователю. –

Смежные вопросы