
Solução de componente criada com base na estrutura MVVMFRame como a biblioteca básica principal
O diagrama de arquitetura componente do MVVMFRameComponent está em camadas da seguinte forma:

Como a biblioteca básica da componente básica é baseada no MVVMFRame , o diagrama de arquitetura do MVVMFRame é publicado aqui da seguinte forma:

Um resumo simples da componente é dividir um aplicativo ou módulo completo em vários submódulos, para que cada submódulo possa ser compilado e executar independentemente ou se fundir no aplicativo host como uma biblioteca para formar um aplicativo completo para compilação e execução. Cada módulo pode ser não dependente e pode interagir entre si.
À medida que um projeto passa, as demandas continuam a mudar e iterar. Cada módulo também se tornará relativamente complexo. A dificuldade de manutenção também aumentará de acordo e, com o tempo, pode causar novos problemas. Neste momento, precisamos de componente.
Quando um aplicativo usa uma solução de desenvolvimento baseada em componentes, as principais vantagens são: após a divisão baseada em componentes de cada módulo, cada submódulo pode ser compilado e executado de forma independente, de modo que, ao desenvolver e ajustar um determinado módulo, a velocidade de compilação e a eficiência do desenvolvimento possam ser bastante aprimoradas. Quando o desenvolvimento de várias pessoas, cada pessoa é responsável por módulos independentes, o que é mais propício ao desenvolvimento colaborativo de equipes de várias pessoas. Além disso, os limites do código entre cada módulo são relativamente claros e fáceis de manter no estágio posterior.
MvvmfRameComponent = componente mvvmframe +. Ou seja, o MVVMFRameComponent adota a solução de componente da arquitetura de padrões MVVM .
Aplicativo de host: quando cada módulo infantil é uma biblioteca , todos os componentes podem ser integrados ao aplicativo host . No momento, o aplicativo host é um aplicativo completo com todas as coleções de funções de componentes.
Biblioteca Básica Pública Componentizada: Inclui principalmente a estrutura de desenvolvimento Rapid MVVMFRame Rapid e algumas bibliotecas básicas do Core Public Core como componente, o que facilita a rápida construção de projeto componente.
Biblioteca de Recursos Públicos Componentes: É principalmente conveniente gerenciar alguns aspectos relacionados a recursos públicos em cada módulo .
Um módulo de função de piada simples: usado principalmente para demonstrar a implementação do desenvolvimento de componentes com base no MVVMFRame , como um dos exemplos de implementação do módulo para o desenvolvimento de componentes.
Um módulo simples de função de notícias: usado principalmente para demonstrar a implementação do desenvolvimento de componentes com base no MVVMFRame , como um dos exemplos de implementação do módulo para o desenvolvimento de componentes.
Projeto -> Variáveis personalizadas em Build.gradle isbuildmodule
Variável personalizada isbuildmodule para gerenciar uniformemente cada módulo infantil para facilitar a alternância entre aplicação e biblioteca
Quando isbuildmodule = true , significa que cada submódulo é aplicação , ou seja, o módulo pode ser executado de forma independente. Quando isbuildmodule = false , significa que cada submódulo é biblioteca , ou seja, o módulo é mesclado no aplicativo host como uma biblioteca
Projeto -> Module -Build.gradle
Módulo de componente Universal Build.gradle para gerenciamento unificado conveniente
De acordo com o iSbuildModule , podemos gerenciar uniformemente cada módulo infantil para alternar entre o aplicativo e a biblioteca .
Como a biblioteca básica do MVVMFRameComponent é baseada no MVVMFRame , você precisa ter um certo entendimento do MVVMFRame para ser mais útil ao usar o MVVMFRameComponent . Aqui não vou mais apresentar o uso do MVVMFRame relacionado. Para detalhes, você pode visualizar diretamente o MVVMFRame.
Para módulos comuns, você pode tentar escrevê -los em Basepp . Para módulos relativamente independentes, você pode escrevê -los na classe de implementação do IComponentApp correspondente do módulo.
NOTA ESPECIAL: A implementação do ICOMPONENTAPP é apenas uma solução para as necessidades correspondentes e é opcional. Use conforme necessário.
Aqui estão exemplos de classes de implementação ICOMPONENTAPP para cada módulo para referência:
A classe de implementação do ICOMPONENTAPP em módulo-piada é JokecomponentApp
A classe de implementação do ICOMPONENTAPP no Module-News é o NewsComponentApp
Abaixo está um exemplo de código no módulo-piada
class JokeComponentApp : IComponentApp {
override fun onCreate ( app : BaseApp ) {
}
}Configurar a classe de implementação do ICOMPONENTAPP correspondente a metadados em manifesto , o exemplo é o seguinte:
<!-- name为:IComponentApp的实现类,value固定为: ComponentApp -->
< meta-data android : name = " com.king.mvvm.joke.JokeComponentApp "
android : value = " ComponentApp " />Quando você deseja obter a classe de implementação do ICOMPONENTAPP de cada módulo, você pode obtê -lo através do método getConoponentApp do BasApp .
Para mais detalhes, verifique os exemplos de uso do código -fonte no aplicativo
Se você gosta de MVVMFRameComponent, ou acha que o MVVMFRameComponent o ajudou, clicar em "Star" no canto superior direito para apoiá -lo. Seu apoio é minha motivação, obrigado?
Você também pode escanear o código QR abaixo e pedir ao autor para tomar uma xícara de café☕
| Meu blog | Github | Gitee | CSDN | Parque do blog |
|---|---|---|---|---|
| Blog de Jenly | Jenly1314 | Jenly1314 | Jenly121 | Jenly |
| Conta oficial do WeChat | Caixa de correio do Gmail | Email QQ | Grupo QQ | Grupo QQ |
|---|---|---|---|---|
| Jenly666 | Jenly1314 | Jenly1314 | 20867961 | 64020761 |