Организация файлов кода / файлов XML для Android SDK - PullRequest
6 голосов
/ 04 октября 2011

Может ли кто-нибудь предоставить некоторые стратегии организации моего проекта, чтобы он был чистым? Скажем, у меня есть куча занятий; хорошо ли помещать их все в отдельный пакет, а другие классы (например, настраиваемые адаптеры) в другой пакет лучше разделять "логику"?

Кроме того, при создании файлов XML для макетов, как бы я логически отделил файлы XML макета, если у меня есть несколько макетов, предназначенных для определенных действий, и другие файлы макетов XML для пользовательских «строк» ​​(для использования с адаптером)? не хочу просто бросать их все в res / layout - это станет такой большой проблемой, когда проект станет действительно большим.

Ответы [ 2 ]

8 голосов
/ 05 октября 2011

Скажи, у меня есть куча занятий;хорошо ли размещать их все в отдельном пакете, а другие классы (например, настраиваемые адаптеры) в другом пакете лучше разделить «логику»?

Я не уверен, что лучше, но вот как я организую свои приложения: я склонен помещать свои действия в com.foo.appname.activity, поставщики контента в com.foo.appname.content, сервисы в com.foo.appname.service и универсальные утилиты в com.foo.appname.utils.

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

Я не хочу просто бросать их все в res / layout

Я не думаю, что каталоги res могут иметь подкаталоги, поэтому лучшее, что вы можете сделать, - это придумать хорошую схему именования.Обычно я добавляю к файлу макета следующий тип: activity_foo.xml, fragment_foo.xml и т. Д.

2 голосов
/ 05 октября 2011

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

a) Activites
b) Classes or Objects
c) Interface classes
d) Database classes
e) Interaction with Database

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

А с вашим макетом ... Я не знаю, сможете ли вы лучше организовать макет. Когда вы генерируете свой проект, если видите, в папке gen есть класс R.java. Этот класс автоматически обнаруживает папки, такие как макет, рисование, сырье ... Но я не уверен, что вы можете создать внутри него подпапки.

...