Android-приложение и (Android) библиотека Archi - PullRequest
4 голосов
/ 25 января 2012

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

В данный момент архитектура, о которой я думаю, выглядит следующим образом:

  • Android-приложение для интерфейса пользователя,
  • Библиотека (Android или «чисто» Java?) Для бизнес-логики,
  • Android-библиотека для доступа к базам данных SQLLite (будет использоватьсяBusiness Logic),
  • Библиотека Android для доступа к модулям Wifi / BT (будет использоваться Business Logic).

Architecture quick schema

Поскольку она оченьВполне вероятно, что в ближайшем будущем для этого приложения для Android будет разработана Java-версия для Win / Mac / Linux, и я стараюсь максимально отделить Business Logic от API, специфичных для Android.

В сущности, бизнес-логике нужно будет использовать встроенную базу данных SQLite, а также использовать адаптер BT и выходить в Интернет через Wi-Fi, например, это можно сделать с помощью двух выделенных библиотек Android.Проблема в том, что я хотел бы, чтобы Business Logic была только «чистой» библиотекой Java, а не построенной на проекте Android.Возможно ли это в соответствии с этой архитектурой, зная, что это возможно, приложение Android будет иметь «модуль» конфигурации, отвечающий за настройку, настройку и запуск при необходимости двух библиотек на базе Android.

Соответствует ли выбранная в настоящее время архитектураимеет смысл в ваших глазах?

Что бы вы посоветовали для этого приложения:

  1. Будьте максимально модульными с хорошим уровнем абстракции (на адаптере DB и BT / Wifi),
  2. Сохраняйте бизнес-логику максимально понятной из API-интерфейсов Android,
  3. Требуйте минимальных изменений для адаптации всего этого решения к классическому Java-приложению.

Спасибозаранее за ваше время и мнения.

1 Ответ

3 голосов
/ 25 января 2012

Я задал аналогичный вопрос - я собирался разработать приложение для Android, Blackberry и, возможно, J2ME.Я сделал это, внедрив специфичные для платформы компоненты (пользовательский интерфейс, доступ к БД, доступ к сети) отдельно от основной бизнес-логики.Ядро BL было разработано как общая библиотека JAR, которую я распространял среди приложений для Android и BB.

Хотя это работало, я не был полностью удовлетворен решением.Как я объяснил в ответе здесь (и даже в ответах на мой первый вопрос, упомянутый выше), я столкнулся с практическими трудностями, поскольку BB / J2ME не поспевал за выпусками Java.Моя реализация Android закончилась использованием большого количества «устаревшего» кода (например, без обобщений).

Сказав, что, поскольку ваша следующая цель - перейти на рабочий стол, а не на BB или J2ME, вы можетене только поддержите ваш дизайн между приложениями для Android и Java для настольных компьютеров, но и поделитесь реализациями.

Что касается вашего вопроса об абстракции, я бы предложил подход на основе интерфейса Business Logic и DB Logic.Ссылка в первом параграфе моего ответа выше показывает простой пример того, как этого добиться, но я был бы рад предоставить более подробную информацию.

...