模块化、组件化总结

372 阅读2分钟

传统工程架构——单一App工程

传统的安卓App架构,项目中的代码都存放在一个App工程中,导致App模块下代码呈指数级增长,基础通用模块与业务功能模块没有区分,代码的复用性差,增加代码合并的风险,增加编译时间,影响开发效率。

模块化架构

模块化架构是一个分层的体系机构。最上层是【宿主层】,不存放任何业务逻辑,唯一的自责就是对外输出一个apk文件;在下来是【业务组件层】,包括首页业务、登录业务、搜索业务、详情业务等。与传统业务不同的是【业务组价层】每个业务都是一个单独的模块/子工程;再下层是【基础业务组件层】,是一些通用的逻辑,包括通用UI、通用业务逻辑等等,当然这些通用的UI、通用的业务逻辑也都是各个子工程;【基础业务组件】下一层是我们的【功能组件】,这部分完全与我们的任何业务逻辑都没有关系,通常都会包括网络组件、图片加载组件、视频组件、存储组件等等,而这些组件也分别是各个独立的工程。

缺点: 业务组件之间强依赖。比如,首页业务、登录业务、搜索业务、详情业务它们之间会相会依赖,相互耦合。这就是模块化架构的主要的缺点。

组件化架构

组件化和模块化在结构上没有太大的区别。依次的层级结构是:

  1. 宿主:负责生产最终的apk文件
  2. 业务组件
  3. 基础业务组件
  4. 功能组件

组件化和模块化的主要区别在于路由化改造。路优化改成是为了解决模块化架构各个业务模块为了相互调用,相互依赖,导致各个工程强耦合的问题。路优化构造就是为了解决业务模块直接的耦合。通过路优化改造,我们可以把业务直接的耦合去掉。经过路优化改造后,我们组件化结构的个业务直接就完全没有耦合。即:组件化架构就是模块化架构加路由改造。