
Решение компонентаризации, основанное на основе структуры MVVMFrame как основной базовой библиотеки
Компонентизированная архитектурная диаграмма MVVMFRAMECOMPONENT имеет место следующим образом:

Поскольку основная базовая библиотека компонентов основана на MVVMFrame , архитектурная диаграмма MVVMFrame размещена здесь следующим образом:

Простая сумма компонента - это разделение полного приложения или модуля на несколько подмодулей, чтобы каждый подмодуль мог быть скомпилирован и запускаться независимо или объединен в приложение хоста в качестве библиотеки для сформирования полного приложения для компиляции и запуска. Каждый модуль может быть не зависимым и может взаимодействовать друг с другом.
По ходу проекта требования продолжают меняться и итерация. Каждый модуль также станет относительно сложным. Сложность технического обслуживания также будет расти соответственно, и со временем это может вызвать некоторые новые проблемы. В настоящее время нам нужна компонентизация.
Когда в приложении используется решение для разработки на основе компонентов, основные преимущества: после того, как на основе компонента расщепление каждого модуля можно скомпилировать и работать независимо, чтобы при разработке и настройке определенного модуля скорость компиляции и эффективность развития могут быть значительно улучшены. При разработке нескольких человек каждый человек несет ответственность за независимые модули, что более способствует совместной разработке многопользовательских команд. Кроме того, границы кода между каждым модулем являются относительно ясными и простыми для поддержания на более поздней стадии.
Mvvmframecomponent = mvvmframe + компонент . То есть, MVVMFRAMECOMPONENT принимает решение компонентов архитектуры шаблона MVVM .
Приложение хоста: Когда каждый дочерний модуль является библиотекой , все компоненты могут быть интегрированы в приложение хоста . В настоящее время приложение хоста является полным приложением со всеми коллекциями функций компонентов.
Компонентизированная общедоступная базовая библиотека: в основном включает в себя структуру быстрого развития MVVMFrame и некоторые общедоступные основные библиотеки в качестве компонентов, что облегчает быстрое построение компонентизированного проекта .
Компонентизированная библиотека общественных ресурсов: в основном удобно управлять некоторыми аспектами, связанными с общественными ресурсами в каждом модуле .
Простой модуль функции шутки: в основном используется для демонстрации реализации разработки компонентов на основе MVVMFrame , как один из примеров реализации модуля для разработки компонентов.
Простой модуль функции новостей: в основном используется для демонстрации реализации разработки компонентов на основе MVVMFrame , как один из примеров реализации модуля для разработки компонентов.
Проект -> Пользовательские переменные в Build.Gradle IsbuildModule
Пользовательская переменная isbuildmodule для равномерного управления каждым дочерним модулем для облегчения переключения между приложением и библиотекой
Когда iSbuildModule = true , это означает, что каждый подмодуль является применением , то есть модуль может работать независимо. Когда iSbuildModule = false , это означает, что каждый подмодуль является библиотекой , то есть модуль объединяется в приложение хоста как библиотека
Project -> module -build.gradle
Компонентный модуль Universal Build.Gradle для удобного унифицированного управления
Согласно IsbuildModule , мы можем равномерно управлять каждым дочерним модулем , чтобы переключаться между приложением и библиотекой .
Поскольку основная базовая библиотека MVVMFrameComponent основана на MVVMFrame , вам нужно иметь определенное понимание MVVMFrame , чтобы быть более удобным при использовании MVVMFrameComponent . Здесь я больше не буду вводить использование связанных с MVVMFrame . Для получения подробной информации вы можете напрямую просмотреть MVVMFrame.
Для общих модулей вы можете попытаться написать их в Baseapp . Для модулей, которые являются относительно независимыми, вы можете написать их в классе реализации соответствующего IcomponentApp модуля.
Специальное примечание: реализация IcomponentApp является лишь решением для ваших соответствующих потребностей и является необязательной. Используйте по мере необходимости.
Вот примеры классов реализации iComponentApp для каждого модуля для справки:
Класс реализации IcomponentApp в модуле-шуте - JokeComponentApp
Класс реализации iComponentApp в модуле-новичках - NewsComponentApp
Ниже приведен пример кода в модуле шутли
class JokeComponentApp : IComponentApp {
override fun onCreate ( app : BaseApp ) {
}
}Настройте класс реализации IcomponentApp , соответствующий метадатам в манифесте , пример заключается в следующем:
<!-- name为:IComponentApp的实现类,value固定为: ComponentApp -->
< meta-data android : name = " com.king.mvvm.joke.JokeComponentApp "
android : value = " ComponentApp " />Если вы хотите получить класс реализации IcomponentApp каждого модуля, вы можете получить его через метод GetComponentApp от Baseapp .
Для получения более подробной информации, пожалуйста, проверьте примеры использования исходного кода в приложении
Если вам нравится MVVMFrameComponent или вы чувствуете, что MVVMFrameComponent помог вам, вы можете щелкнуть «Звезда» в правом верхнем углу, чтобы поддержать его. Ваша поддержка - моя мотивация, спасибо?
Вы также можете сканировать QR -код ниже и попросить автора купить чашку кофе
| Мой блог | GitHub | Гитее | CSDN | Блог Парк |
|---|---|---|---|---|
| Блог Дженли | jenly1314 | jenly1314 | jenly121 | Дженли |
| WeChat Office Account | Почтовый ящик Gmail | QQ Электронная почта | QQ Group | QQ Group |
|---|---|---|---|---|
| Jenly666 | jenly1314 | jenly1314 | 20867961 | 64020761 |