Android отдельные пакеты - PullRequest
3 голосов
/ 26 апреля 2011

У меня большой пользовательский интерфейс (около 20-25 экранов). Как мне организовать свой код? Должен ли я разделить по функциональности на разные пакеты? Должен ли я иметь один пакет для всех классов пользовательского интерфейса, а затем создавать подпакеты для организации? Или я не должен создавать отдельные пакеты и организовывать в папки. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

8 голосов
/ 26 апреля 2011

Когда вы создаете папку, она становится пакетом.Моя любимая структура для больших проектов выглядит следующим образом:

  • UI
  • Core / Logic
  • DAO / Connections
  • Utils
  • Модели / ТО / ВО

Надеюсь, это поможет.

0 голосов
/ 02 марта 2014

Я пытался максимально разделить свои классы на логические пакеты.

  • Деятельность
  • адаптеры (в основном адаптеры для просмотра списков)
  • asynctasks (по большей части связь с сервером)
  • core (содержит класс констант и базовое действие, которое содержит глобальные переменные, а также скользящее меню и панель действий)
  • 1012 * фрагменты *
  • интерфейсы (в основном интерфейсы шаблонов слушателя / наблюдателя, используемые для уведомления об успехе / неудаче асинхронной задачи или операции с базой данных)
  • localsqlitedb (содержит класс sqlqueries, вспомогательный класс базы данных и другие связанные с БД классы)
  • objects - содержит простые старые Java-объекты (pojos), представляющие различные сущности из моего приложения (пользователь, элемент пользователя, категория)
  • утилиты - обработка изображений, отправители электронной почты, пользовательские тосты и т. Д.

Я думаю, что легко поддерживать и повторно использовать код, организованный таким образом

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

в папке раскладок:

activity_login.xml
activity_register.xml
dialog_delete_profile_confirmation.xml

в папке для рисования:

icon_feed.xml
icon_search.xml
images_loading_splash_screen.png
images_default_avatar.png

в пакете asynctasks

GetUserDataFromServerAsync.class
RegisterUserAsync.class

(поэтому, когда я ссылаюсь на них в коде, я знаю, что это не класс внутреннего обработчика, а класс, который связывается с сервером)

...