1.前言
- 组件化 在Android开发的近几年来,已经由单纯编写代码的概念(工具类、第三方组件等等)迁移并应用于项目的架构上,而在应用项目架构过程中又演变出多种不同的实现方案,随着现代APP应用市场的快速发展,应用开发的时间、效率、稳定性、可扩展性、灵活性都要体现出高标准的行业水平,因此开发者就想出把项目划分多个模块,并且需求满足协同与独立开发,组件化就由此诞生。
- 文章中实例 linhaojian的Github
2.目录
3.组件化发展史
- 项目架构发展过程中,包含非常多种实现方式,我将它们划分了三种 传统、模块、组件:
3.1 传统化项目结构
- 传统化结构:通过 项目内业务分包 的方式进行开发,这种方式 维护、扩展都非常困难,并且不方便团队开发,只适应小项目。
3.2 模块化项目结构
- 模块化结构:在AndroidStudio 开发工具内,通过 创建module 的方式进行划分不同的业务功能,然后在主项目与module 或者 module间构建关联(这种关联方式耦合性高),当module不合理设置的适合,会出现module之间类库的冗余或者重复使用。
3.3 组件化项目结构
- 组件化结构:组件化就是在模块化的思想上优化演变出来,在模块化思想上,通过1.抽出module间公用部分;2.使用路由Router解耦module间的交互;3.gradle集成与独立配置;4.代码与资源的隔离,使得module同时支持集成开发与独立开发。
4.定义
- 将重复的代码进行封装,业务功能划分为最小粒子。
5.作用
- 1.复用代码;
- 2.降低业务功能间的依赖或者关联;
- 3.提供单独业务运行与调试;
6.特点
- 1.module具备独立性,可单独运行或调试;
- 2.module间高度解耦,通过路由交互;
- 3.代码与资源隔离;
- 4.module划分尽可能粒子化,便于维护与复用;
7.组件化架构
- 借助以下的包含实例的图,便于更深入了解 组件化 的架构;
- 图中总共分4层 组件集成、业务组件、功能组件、运行环境;
- 组件集成:将所有业务组件组合到APP的空壳项目中(空壳项目中只包含启动页,无任何业务逻辑);
- 业务组件:将项目按照功能需要划分粒度较小的module;
- 功能组件:将不同业务组件中公用部分封装为各种类库;
- 运行环境:项目开发中所依赖的语言库或者开发环境;
- 从图中可以发现,组件化只存在 垂直关系,使各业务功能更独立与清晰,更适合现代团队开发的要求。
8.组件化实践
- 下面简单配合例子实践组件化开发过程