您现在的位置是:主页 > news > 苏州前几天网站建设/seo jsbapp9
苏州前几天网站建设/seo jsbapp9
admin2025/5/3 7:34:31【news】
简介苏州前几天网站建设,seo jsbapp9,建设银行网站用户名忘了怎么办,怎么自己做时时彩网站组件化 组件化之前 所有业集中再一个Module中。随着业务的增加,整个项目结构的复杂度也在不断的增加 业务之间直接相互调用,你中有我,我中有你,代码高度耦合,牵一发而动全身开发人员需要花费大量的时间与其他业务开发…
组件化
组件化之前
所有业集中再一个Module中。随着业务的增加,整个项目结构的复杂度也在不断的增加
- 业务之间直接相互调用,你中有我,我中有你,代码高度耦合,牵一发而动全身
- 开发人员需要花费大量的时间与其他业务开发人员沟通与协调,无法专注于自己的功能点,影响开发效率
- 不能灵活对工程进行配置和组装
组件化之后
组件化是指解耦复杂系统时,将多个功能模块拆分。重组的过程。在Android工程表现上就是把app按照其业务的不同。划分为不同的Module
1 App 壳工程: 负责管理各个业务组件和打包APK,没有具体的业务功能; 就是指的创建项目中的app模块
2 业务组件层:根据不同的业务构成独立的业务组件
3 功能组件层:对上层提供基础功能服务,如登录,日志服务等;
4 基础库 :包含了各种开源库以及和业务无关的各种自研工具等。
上层调用下层
、
基础库就是引用的第三方,或者是自己创建的工具类
为什么要组件化
1 、各个组件专注自身功能的实现,模块中代码高度聚合,只负责一项任务,也就是常说的单一责任原则;
2、各业务研发可以互不干扰、提升写作效率;
3、业务进行拔插、灵活多变;(通过implementation导入)
4、业务之间将不再直接引用。和依赖。各个模块组件更加独立,降低耦合;(功能之间无法调用 比如图中2的food 与图中2 的main)
5、加快编译速度,提高开发效率(单元测试 或者直接编译功能的apk就可以)
。。。。。。
如何组件化
组件模式和集成模式的转换
1、gradle.properties中定义变量,如:
#true 集成模式运行 false:组件模式运行
isModule=true
2、在业务层中的build.gradle修改为动态导入不同插件,下面以sdk为例:
if(isModule.toBoolean()){
//集成模式 集成进入appapply plugin:'com.android.library'}else{//组件模式 单独运行apply plugin:'com.android.application'}
3.在导入的时候判断
if (isModule.toBoolean()) {implementation project(':sdk')}
在sdk这里判断
if (!isModule.toBoolean()) {applicationId "com.huikeyun.sdk"}
也可以在根目录新建一个config.gradle 写入如下内容
ext{isModule=false
}
在项目级别的gradle中最上面
apply from: "config.gradle"
然后再根目录的时候
if (rootProject.ext.isModule.toBoolean()()) {apply plugin: 'com.android.library'
} else {apply plugin: 'com.android.application'
}