Советы по организации крупных проектов Android?
Мой текущий проект становится ужасно большим. У меня есть десятки видов деятельности, адаптеры, фрагменты, макет xmls и другие ресурсы.
В моих (более мелких) предыдущих проектах я организовал материал с стилем категории 1 пакет /1. Поэтому у меня был com.stuff.xy.adapter, com.stuff.xy.activity и т.д. Теперь эти пакеты содержат слишком много элементов, и я нахожу, что трачу много времени на поиск определенного класса в иерархии пакетов.
Я использую Eclipse, и есть некоторые ярлыки, которые можно использовать (перейдите к определению класса, например,), но они имеют тенденцию быть ситуативными (я не могу использовать это, чтобы быстро перейти к макету define xml).
Не могли бы вы поделиться некоторыми советами по эффективному организации крупномасштабных проектов? Или некоторые плагины для этого, возможно? (Это может помочь, например, если бы я мог объединять исходные файлы, относящиеся к конкретному экрану приложения - адаптеры, макеты, активность и код фрагмента, - поэтому я могу быстро их открыть)
EDIT: После многих месяцев разработки крупных проектов
Сначала я попытался пойти с рабочими наборами с Eclipse. На самом деле это не порезало для меня, моя проблема заключалась в том, что наш единственный проект для Android был просто слишком большим, содержащим множество ресурсов, классов, интерфейсов и т.д. Беседа с рабочими наборами в контексте одного проекта заняла слишком много времени, Я думаю, что они в основном полезны для организации проектов в одном рабочем пространстве.
В долгосрочной перспективе мы разделили наш огромный единый проект на множество небольших проектов с андроидной библиотекой и единый проект "основного приложения", который зависел от всех этих меньших. Таким образом, мы могли бы разделить ресурсы между этими библиотечными проектами (было много макетов, значений, стилей, которые использовались только в определенных частях приложения) и, конечно же, кода. Я также создал базовую библиотеку, которая зависела от всех других библиотек и содержала ресурсы и (базовые) классы, необходимые каждой части приложения.
Ответы
Ответ 1
В Eclipse вы можете использовать Working Sets для фильтрации ваших файлов источника/макета/ресурсов в представлении Project Explorer. Это немного более мощный, чем пакеты, поскольку он работает со всеми файлами, включая макеты и изображения, а не только с исходными файлами java.
Например, вы можете создать домашний рабочий набор, который содержит HomeActivity.java, HomeAdapter.java, res/layout/home.xml, res/drawable/home_icon.png и т.д.
Ответ 2
Для всех моих проектов Android я предпочитаю сортировать код в следующей структуре:
com.company.projectname
- это пакет приложения.
Базовые пакеты:
model
- все мои бизнес-объекты
logic
- службы и объекты, реализующие бизнес-логику
screens
- все действия проекта. Если для действий требуются адаптеры и т.д., То каждое действие помещается в отдельный пакет под пакетом экранов, а соответствующий материал помещается в один и тот же проект.
tools
- пакет с классом Utility. SettingsUtil и т.д.
В корне пакета я обычно имею интерфейс Constants.java с константами.
Ответ 3
Еще один совет.
Используйте Ctrl-Shift-R, чтобы быстро открыть ресурс (вы получите раскрытие автозаполнения) и Ctrl-Shift-T, чтобы быстро открыть класс java. Список также будет автоматически заполняться с использованием последних открытых файлов.
Ответ 4
Возможно, подсказка: чтобы быстро перейти к объявлению в Eclipse
Удерживайте Ctrl, а зависает над классом или методом. Через 1 секунду вы получите всплывающее окно с открытой декларацией/открытой реализацией.
Очень полезно в большом проекте.
В остальном я рекомендую просто сделать его интуитивно понятным и отсортировать все действия в пакете, а также все вычисления, например.
Ответ 5
для вашей озабоченности "Я не могу использовать это, чтобы быстро перейти к макету definiton xml", вы можете щелкнуть имя макета xml, затем ctrl + shift + R приведет вас к этой странице определения.