Android组件化

315 阅读2分钟

什么是组件化?

组件化其实就是页面跳转的映射,也包含了页面跳转相关功能。

组件化项目和传统项目的区别

传统项目中

我们通常情况下会有一个common和一个app模块,业务中的逻辑都写在app中,各个功能模块放到不同的包下,这样做主要有以下几个的缺点:

  1. 无论分包做的再好,随着项目的增大,项目会逐渐失去层次,别人来接手的时候会很吃力;
  2. debug一个小功能的时候,每次修改代码都需要重新build整个项目,这样显的很不合理;
  3. 多人合作开发,在版本管理中,很容易出现冲突和代码覆盖的问题;

组件化项目中

按照功能划分各个业务组件模块(例如:微信可以划分出chat,contract,find,mine四个大模块),之前的包变成现在的模块,增加了层次感;每个功能模块可以单独编译,加快了编译速度,也为提供单元模块测试提供了支持;多人开发只负责自己的模块,直接避免了版本管理的冲突。 组件化架构

旧的模块间交互方式

旧的模块间交互方式

怎么实现组件化?实现原理?

实现组件化的关键在于设计,通过 APT + JavaPoet + 注解 的方式,自动生成路由组和路由页面,也包括页面跳转中的 传参、拦截、回调等功能。

有什么优缺点?

优点

  1. 高度解耦:不相互依赖,但可以彼此交互;
  2. 灵 活:即可以自由拆卸,又可以互相组合;
  3. 单独编译功能模块,加快了编译速度,提高开发效率,
  4. 独立打包每个功能模块,为模块单元测试提供了支持;
  5. 统一版本管理,多人开发只负责自己的模块,直接避免了版本管理的冲突;

缺点

几乎没有缺点

有没有更好的实现方式?

暂时没想到,欢迎交流!