本文首发于我的个人博客
背景:
市面上已开源的或者已发布的组件化方案,多数都是开发阶段单一工程结构,切换module模式。本质上依然没有达到代码完全隔离的目的,开发与整合测试中的一些痛点还是没有彻底解决
我们的方案:代码完全隔离,互相只能依赖,不可编辑,各模块可以单独运行,也可组合依赖
本文内容为亲自实践并验证之后整理,理解了思路,具体实施方案其实可以有多种,最主要的是自己觉得合适的。
先看看常见的方案
第一种方案-单一项目结构
该架构模式比较大众化,很多组件化demo 都是这种结构,比如得到
核心思想:所有业务组件及common组件以module形式存在于一个项目内
优点: 项目没有冗余,便于管理
缺点:没有达到组件完全隔离效果,组件插拔使用仍需新建或导入项目
代码结构
解读:
app
:项目module,无具体业务,不包含具体页面,只负责编译依赖组件、集成打包module_main
: main组件,定义启动页与主页module_a
:业务组件moduel_baidulocation
:功能组件module_common
: 基础公共组件
各组件为独立工程架构后面说明,基本配置及思想不变
组件文件结构 :
由于组件以Module形式存在于项目内
因此只保留Module目录文件,其他工程文件统一由主体工程提供
主体项目配置
setting.gradle
配置
include
所有组件module
如:
include ':app',
':module_main'