组件化

组件化:

为什么组件化?

随着APP版本不断的迭代,新功能的不断增加,业务也会变的越来越复杂,APP业务模块的数量有可能还会继续增加,而且每个模块的代码也变的越来越多,这样发展下去单一工程下的APP架构势必会影响开发效率,增加项目的维护成本,每个工程师都要熟悉如此之多的代码,将很难进行多人协作开发,而且Android项目在编译代码的时候电脑会非常卡,又因为单一工程下代码耦合严重,每修改一处代码后都要重新编译打包测试,导致非常耗时,最重要的是这样的代码想要做单元测试根本无从下手,所以必须要有更灵活的架构代替过去单一的工程架构。

组件化与模块化区别?

模块化 vs 组件化

当你看到这的时候,想必心理一阵恶寒:模块化?组件化?到底是什么鬼?有啥区别.
有这种感觉才是对的,模块化和组件化本质思想是一样的,都是”大化小”,两者的目的都是为了重用和解耦,只是叫法不一样.如果非要说区别,那么可以认为模块化粒度更小,更侧重于重用,而组件化粒度稍大于模块,更侧重于业务解耦.

组件化优缺点

组件化开发的好处是显而易见:系统级的控制力度细化到组件级的控制力度,一个复杂系统的构建最后就是组件集成的结果.每个组件都有自己独立的版本,可以独立的编译,测试,打包和部署
产品组件化后能够实现完整意义上的按需求进行产品配置和销售,用户可以选择使用那些组件,组件之间可以灵活的组建.
配置管理,开发,测试,打包,发布完全控制到组建层面,并带来很多好处.比如一个组件小版本进行升级,如果对外提供的接口没有发生任何变化,其他组件完全不需要再进行测试.
但是组件化的实施对开发人员和团队管理者提出了更高水平的要求.相对传统方式,在项目的管理和组织上难度加大,要求开发人员对业务有更深层次上的理解.

组件化的核心是角色的转换。 在打包时, 是library; 在调试时, 是application。

如何配置组件化?

application属性,可以独立运行的Android程序,也就是我们的APP
apply plugin: ‘com.android.application’
library属性,不可以独立运行,一般是Android程序依赖的库文件
apply plugin: ‘com.android.library’

组件化代码

项目gradle.properties:
在这里插入图片描述

Module

build.gradle:
在这里插入图片描述
在Android标签内配置:

 sourceSets {
        main {
            if (isLoginModule.toBoolean()) {
                manifest.srcFile 'src/main/debug/AndroidManifest.xml'
            }  else {
                manifest.srcFile 'src/main/release/AndroidManifest.xml'
            }
        }
    }

清单文件

在main文件夹下创建 debug 和 release 两个文件夹,各有一个清单文件

当Module变成依赖时,自带的清单文件要删除
其中debug版清单文件就是普通的清单文件,作为module单独编译时使用,而release版本则是module作为library时使用的
application 的名字要区分

在这里插入图片描述
debug文件夹下的清单文件要添加一个Application , :
在这里插入图片描述
release文件夹下的清单文件:
没有application 和 入口
在这里插入图片描述

导入自写library依赖

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值