Вы можете создать столько классов, сколько пожелаете для своей бизнес-логики.
Для вас уже написано множество утилит - DatabaseUtils, Html.
Ответ 2
Универсального уникального шаблона MVC не существует. MVC - это скорее концепция, чем надежная платформа программирования. Вы можете реализовать свой собственный MVC на любой платформе. Пока вы придерживаетесь следующей базовой идеи, вы реализуете MVC:
Модель: что отображать
Просмотр: Как визуализировать
Контроллер: события, пользовательский ввод
Также подумайте об этом так: когда вы программируете свою модель, модели не нужно беспокоиться о рендеринге (или коде, зависящем от платформы). Модель скажет представлению: "Мне все равно, выполняется ли ваш рендеринг на Android, iOS или Windows Phone, это то, что мне нужно, чтобы вы отрисовали". Представление будет обрабатывать только код рендеринга для конкретной платформы.
Это особенно полезно, когда вы используете Mono для совместного использования модели с целью разработки кроссплатформенных приложений.
Ответ 3
Действия, представления и activities на Android являются встроенным способом работы с пользовательским интерфейсом Android и являются реализацией шаблона model-view–viewmodel (MVVM), который структурно аналогичен (в том же семействе, что и) model–view–controller.
Насколько мне известно, нет способа вырваться из этой модели. Вероятно, это можно сделать, но вы, скорее всего, потеряете все преимущества существующей модели и вам придется переписать свой собственный уровень пользовательского интерфейса, чтобы заставить его работать.
Ответ 4
После некоторых поисков наиболее разумным ответом является следующий:
MVC уже реализован в Android как:
Вид = макет, ресурсы и встроенные классы, такие как Button производные от android.view.View.
Контроллер = Активность
Модель = классы, реализующие логику приложения
(Это, кстати, подразумевает отсутствие логики домена приложения в действии.)
Самое разумное для небольшого разработчика - следовать этому шаблону и не пытаться делать то, чего Google решил не делать.
PS Обратите внимание, что Activity иногда перезапускается, поэтому в нем нет места для данных модели (самый простой способ вызвать перезапуск - исключить android:configChanges="keyboardHidden|orientation" из XML и включить ваше устройство).
Редактировать
Возможно, мы говорим о MVC, но это будет, так сказать, FMVC, Фреймворк--Модель--Представление --Контроллер. Фреймворк (ОС Android) навязывает свое представление о жизненном цикле компонента и связанных с ним событиях, и на практике Контроллер (Activity/Service/BroadcastReceiver) в первую очередь отвечает за обработку этих событий, навязанных Фреймворком (таких как onCreate()). Должен ли пользовательский ввод обрабатываться отдельно? Даже если это необходимо, вы не можете отделить его, события пользовательского ввода также поступают из Android.
В любом случае, чем меньше кода, не относящегося к Android, вы добавите в свой Activity/Service/BroadcastReceiver, тем лучше.