Организация файлов кода / XML-файлов для Android SDK

#android #android-layout #organization #code-cleanup

#Android #android-макет #организация #очистка кода

Вопрос:

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

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

Ответ №1:

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

Я не уверен, каковы наилучшие методы, но вот как я организовываю свои приложения: я обычно добавляю свои действия 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:

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

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

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

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