我们通常会在一个项目工程 (Project) 里开发,该工程包含了 App 的所有业务。最开始我们会在一个 app 模块里实现业务功能,之后随着业务增加,代码量越来越多,编译时间越来越长。可能会抽取一些业务代码到新的模块,但是模块之间还是存在着错综复杂的依赖关系,因为有跳转页面、传递数据等需求,耦合度很高,这会导致以下痛点:
- 任何修改都要编译整个项目工程,经常编译一次需要非常久。项目越大,编ProcessOn译的时间越长。
- 业务模块耦合度很高,导致业务功能难以复用,即使把整个模块代码导入到别的项目工程也很难编译通过。
- 多人协作开发容易相互影响,代码合并经常冲突,使得协作开发的效率很低。
- 容易牵一发而动全身,导致维护成本变高。
这些代码耦合度高导致的问题都可以用组件化解决,本文会给大家介绍组件化的优势及其应用,以及更多的实战技巧。
组件化的优势
组件是业务单一的功能模块,每个组件都可以独立运行,也可以集成到其他组件中运行。组件化相对于前面说的模块化,耦合度更低,能有效解决上述所讲的痛点。
- 开发时可以独立编译调试一个业务模块,无需编译整个工程,提高编译效率。
- 业务模块的耦合度降低,代码更加独立,更容易复用。
- 每个业务组件都有相应的负责人,大家的开发互不打扰,代码质量的好坏也只会影响到自己的业务模块,减少代码冲突,提高协作开发效率。
- 如果业务功能有问题,通常只需要修改对应业务组件,维护成本更低。
组件化架构
以下是个人理解的组件化架构方案:
如何快速入手组件化
为了更好地帮助大家掌握组件化的知识,更好地理解组件化的核心底层原理,里面对相关知识点有详尽的说明,希望可以帮助大家学习提升。
由于篇幅原因,以下仅已截图展示部分内容,这份纯手写笔记已经被整理成了PDF文档,完整版PDF电子书,文末点击卡片即可免费领取!
《高级Android组件化强化实战(附源码)》资料详情
该资料分为三大块
- 第一章 Android组件化初识
- 第二章 Android组件化初探
- 第三章 大厂APP的架构演化
第一章 Android组件化初识目录
- 组件化和模块化的区别
- 组件化和插件化的区别
- 组件化开发的优势
- 业务逻辑层
- 组件化开发要遇到的问题
- 从组件化实战来解决问题
- Android组件化基础
- ……
第二章 Android组件化初探目录
- 组件化演示案例
概述
模块化和组件化
组件化Demo
组件application和library动态切换
…… - WanAndroid APP 组件化项目实战附demo
版本更新
效果图
主要功能
项目目录结构
主要开源框架
……
第三章 架构演化(大厂篇)
-
从智行 Android 项目看组件化架构实践
组件化调整的原因和目标
组件化架构调整的整体规划
组件化架构调整中遇到的一些问题
……
-
得到 App
Android彻底组件化demo发布
JIMU使用指南
组件化拆分的感悟
……
-
微信 App
微信Android模块化架构重构实践
微信Android架构历史
为何再次重构微信
……
-
蘑菇街 App
蘑菇街 App 的组件化实现方式
组件生命周期管理
壳工程
遇到的问题
持续集成
周边设施
……
-
爱奇艺 App
基于Service的IPC通信
组件化跨进程通信的核心诉求
Andromeda
架构分析
……
