
Solución de componentes creada en base al marco MVVMFRame como la biblioteca básica de Core
El diagrama de arquitectura componente de MVVMFrameComponent se coloca de la siguiente manera:

Debido a que la biblioteca básica básica de componentes se basa en MVVMFRame , el diagrama de arquitectura de MVVMFRame se publica aquí de la siguiente manera:

Un resumen simple de la componencia es dividir una aplicación o módulo completo en múltiples submódulos, de modo que cada submódulo se pueda compilar y ejecutar de forma independiente, o fusionarse en la aplicación host como una biblioteca para formar una aplicación completa para la compilación y en ejecución. Cada módulo puede ser no dependiente y puede interactuar entre sí.
A medida que pasa un proyecto, las demandas continúan cambiando e itando. Cada módulo también se volverá relativamente complejo. La dificultad de mantenimiento también aumentará en consecuencia, y con el tiempo, puede causar algunos problemas nuevos. En este momento, necesitamos componentes.
Cuando una aplicación utiliza una solución de desarrollo basada en componentes, las principales ventajas son: después de la división basada en componentes de cada módulo, cada submódulo se puede compilar y ejecutar de forma independiente, de modo que al desarrollar y ajustar un cierto módulo, la velocidad de compilación y la eficiencia del desarrollo se pueden mejorar enormemente. Cuando el desarrollo de varias personas, cada persona es responsable de módulos independientes, que es más propicio para el desarrollo colaborativo de equipos de varias personas. Además, los límites del código entre cada módulo son relativamente claros y más fáciles de mantener en la etapa posterior.
MVVMFRAMECOMPONENT = MVVMFRAME + COMPONENTE . Es decir, MVVMFRAMECOponent adopta la solución de componente de la arquitectura del patrón MVVM .
Aplicación de host: cuando cada módulo infantil es una biblioteca , todos los componentes se pueden integrar en la aplicación host . En este momento, la aplicación host es una aplicación completa con todas las colecciones de funciones de componentes.
Biblioteca básica pública componente: incluye principalmente el marco de desarrollo rápido MVVMFRame y algunas bibliotecas básicas de núcleo público como componentes, lo que facilita la construcción rápida de un proyecto componente.
Biblioteca de recursos públicos componentes: es principalmente conveniente administrar algunos aspectos relacionados con los recursos públicos en cada módulo .
Un módulo de función de broma simple: se utiliza principalmente para demostrar la implementación del desarrollo de componentes basados en MVVMFRame , como uno de los ejemplos de implementación del módulo para el desarrollo de componentes.
Un módulo de función de noticias simple: se utiliza principalmente para demostrar la implementación del desarrollo de componentes basados en MVVMFRame , como uno de los ejemplos de implementación del módulo para el desarrollo de componentes.
Proyecto -> Variables personalizadas en build.gradle isbuildmodule
Variable personalizada ISBuildModule para administrar uniformemente cada módulo infantil para facilitar el cambio entre la aplicación y la biblioteca
Cuando isBuildModule = true , significa que cada submódulo es una aplicación , es decir, el módulo se puede ejecutar de forma independiente. Cuando isBuildModule = false , significa que cada submódulo es biblioteca , es decir, el módulo se fusiona en la aplicación host como una biblioteca
Proyecto -> módulo -build.gradle
Módulo de componente Universal Build.gradle para una gestión unificada conveniente
Según IsBuildModule , podemos administrar uniformemente cada módulo infantil para cambiar entre la aplicación y la biblioteca .
Debido a que la biblioteca básica básica de MVVMFRAMECOMPONENT se basa en MVVMFRame , debe tener una cierta comprensión de MVVMFRame para ser más útil cuando se usa MVVMFRAMECOMPONENT . Aquí ya no introduciré el uso de MVVMFrame relacionado. Para más detalles, puede ver directamente MVVMFRame.
Para los módulos que son comunes, puede intentar escribirlos en BaseApp . Para los módulos que son relativamente independientes, puede escribirlos en la clase de implementación de la correspondiente iComponentApp del módulo.
Nota especial: La implementación de IcomponentApp es solo una solución a sus necesidades correspondientes y es opcional. Use según sea necesario.
Aquí hay ejemplos de clases de implementación de IcomponentApp para cada módulo como referencia:
La clase de implementación de icomponentApp en módulo-bromo es JokeComponentApp
La clase de implementación de IcomponentApp en el módulo-News es NewscomponentApp
A continuación se muestra un ejemplo de código en módulo-bromo
class JokeComponentApp : IComponentApp {
override fun onCreate ( app : BaseApp ) {
}
}Configurar la clase de implementación de IcomponentApp correspondiente a los metadatos en Manifest , el ejemplo es el siguiente:
<!-- name为:IComponentApp的实现类,value固定为: ComponentApp -->
< meta-data android : name = " com.king.mvvm.joke.JokeComponentApp "
android : value = " ComponentApp " />Cuando desee obtener la clase de implementación de iComponentApp de cada módulo, puede obtenerla a través del método GetComponentApp de BaseApp .
Para obtener más detalles, consulte los ejemplos de uso del código fuente en la aplicación
Si te gusta MVVMFRAMECOponent, o sientes que MVVMFRAMECOMPONENT te ha ayudado, puedes hacer clic en "Estrella" en la esquina superior derecha para apoyarlo. Tu apoyo es mi motivación, ¿gracias?
También puede escanear el código QR a continuación y pedirle al autor que tome una taza de café☕
| Mi blog | Github | Giteo | CSDN | Parque de blogs |
|---|---|---|---|---|
| Blog de Jenly | jenly1314 | jenly1314 | jenly121 | jenly |
| Cuenta oficial de WeChat | Buzón de gmail | Correo electrónico QQ | Grupo QQ | Grupo QQ |
|---|---|---|---|---|
| Jenly666 | jenly1314 | jenly1314 | 20867961 | 64020761 |