Android—组件化

Android—组件化本文探讨了单体应用的局限性 如低内聚和高耦合 然后重点介绍了组件化开发的优势 如高内聚 低耦合 可重用和层次独立

大家好,欢迎来到IT知识分享网。

1、单体应用

2、包名作为约束,太弱了。一不注意就会出现不同业务之间之间相互调用,代码高度耦合

2、组件化

在这里插入图片描述

2.1、为什么使用组件化

2.2、什么是组件化

2.3、区分模块化与组件化

2.4、区分组件化与插件化

2.5、组件化要考虑的问题

2.6、组件分层

3、demo

根据组件的分层来创建module。

3.1、创建module

1.)创建一个项目名为Component(名字随意),作为我们的主工程,是整个应用的主入口。对项目做一些初始化和配置都是在主工程里。

2.)创建第2个业务组件,一个main,一个login。File–>New–>New Module –> Phone & Tablet。业务组件都选择Phone & Tablet,这样后面就可以进行单独的运行和调试。

为了让分层更明显,在Module name栏中加一个moduleCore,后面创建的所有业务组件都放到moduleCore文件夹下面。在Package name栏加一个module,避免命名冲突的一些问题。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.)创建基础组件。File –> New –> New Module –> Android Library。
在Module name栏中加一个moduleBase,创建的基础组件都放在该文件夹下。同样在Package name栏加上一个module避免命名冲突。
在这里插入图片描述
4.)创建功能组件,File –> New –> New Module –> Android Library。
在这里插入图片描述
最后,创建的结果如下
在这里插入图片描述









3.2、管理组件分层中业务组件、基础组件之间的依赖关系

对依赖做一个统一的管理,避免因版本不一致而产生的依赖冲突。这么多的module,它可能去依赖各种第三方库、SDK。因此,这里先做一个版本的管理。

1.)在project下的build.gradle里创建一个ext{},里面添加如下内容。

isDebug = false //当它为true时,是调试模式,组件可以单独运行(applicaton);当它为false,是正式的编译打包的模式(library). 作业:使得业务组件可以在application和library之间进行切换 android = [ compileSdkVersion: 32, minSdkVersion: 21, targetSdkVersion: 32, buildToolsVersion: "30.0.2", versionCode: 1, versionName: "1.0" ] applicationId = [ // 可以切换到application "app" : "com.example.component", "main" : "com.example.module.main", "login" : "com.example.module.login" ] // SDK的一写library library = [ "appcompat" : "androidx.appcompat:appcompat:1.3.0", "material" : "com.google.android.material:material:1.4.0", "constraintlayout" : "androidx.constraintlayout:constraintlayout:2.0.4" ] //第三方的library libARouter = "com.alibaba:arouter-api:1.5.1" libARouterCompiler = "com.alibaba:arouter-compiler:1.5.1" libGson = "com.google.code.gson:gson:2.8.6" 

2.)修改 main业务组件 里的build.gradle文件(login是一样的)。
在这里插入图片描述
在这里插入图片描述
当main/login是一个applicaton (isDubug==true时, 可以单独运行)时,对AndroidManifest.xml文件也要进行修改。
首先,在mian下面创建一个debug文件夹,然后拷贝一份AndroidManifest.xml 到里面,如下
在这里插入图片描述
其次,将main下面的AndroidManifest.xml 做如下修改(注意:不是修改debug下的那个AndroidManifest.xml)
在这里插入图片描述
最后,再修改build.gradle(main/login),对当前的业务组件是application还是library进行判断,然后动态的选择两个AndroidManifest.xml
在这里插入图片描述








3.)修改 libBase基础组件 里的build.gradle文件
在这里插入图片描述
在这里插入图片描述

4.)修改 modulePay功能组件 里的build.gradle文件。
在这里插入图片描述
在这里插入图片描述

3.3、业务组件间通信和参数传递

使用 组件路由,待续…

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121779.html

(0)
上一篇 2025-10-21 16:00
下一篇 2025-10-21 16:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信