android电商组件化设计(含源码):MVP+dagger+组件化

本文介绍了在一个电商项目中如何进行组件化设计,包括组件化的原因、实施步骤和架构设计。重点讲解了MVP架构、Dagger依赖注入以及ARouter组件间通信的使用,同时提供了组件初始化、Gradle配置和Butterknife在组件化项目中的应用。
摘要由CSDN通过智能技术生成

起源

在采用组件化之前,我负责的一个电商项目经历了1.0单模块版本、2.0多模块版本,3.0决定采用组件化来重构项目,并将项目开源,可供同样在做电商的android开发者参考、在研究android架构的同行者共同学习进步。在做之前,我们考虑三个问题,what、why和how,什么是组件化?为什么要进行组件化?如何进行组件化?
该电商项目源码请点击

什么是组件化

组件化是指解耦复杂系统时将多个功能模块拆分、重组的过程。在Android工程表现上就是把app按照其业务的不同,划分为不同的Module,每个Module可独立作为一个app运行,也可作为整个app的子模块。

为什么要进行组件化
  1. 为了解耦:把复杂系统拆分成多个组件,分离组件边界和责任,便于独立升级和维护
  2. 各个组件专注自身功能的实现,模块中代码高度聚合,只负责一项任务,也就是常说的单一职责原则;
  3. 各业务研发可以互不干扰、提高协作效率;
  4. 业务组件可进行拔插,灵活多变;
  5. 业务组件之间将不再直接引用和依赖,各个业务模块组件更加独立,降低耦合;
  6. 加快编译速度,提高开发效率
android如何进行组件化
  1. 在gradle.properties文件中增加常量:isModule=false
  2. 在各个组件模块的gradle中增加是否是组件的动态配置
if (isModule.toBoolean()) {
    apply plugin: 'com.android.application'
} else {
    apply plugin: 'com.android.library'
}
  1. 如果需要独立模块运行,则将gradle.properties中的isModule置为true,否则置为false,修改后rebuild一下;当然这样只是简单实现了组件的自动拆分和重组,更详细的实现请继续往下看

电商项目组件化之路

根据电商项目的业务特点,我们设计了如下架构图
在这里插入图片描述
从下往上来看,依次是通用组件、业务组件、业务模块、APP壳四大层。

  1. 通用组件,又称业务无关组件,根据来源分为开源库和基础组件库,开源库是我们在项目中经常会用到的第三方库,比如okhttp、rx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值