• Android组件化开发实践和案例分享

    一.组件化目的

  • 降低维护成本,节省编译时间;

    二.组件化概念

    1.什么是组件

  • 组件是对数据和方法简单封装,功能单一,高内聚,是业务能划分的最小粒度;

    2.什么组件化

  • 组件化是基于组件可重用性的目的上,将大的系统按照分离关注点的形式,拆分成多个独立的组件;

    三.模块化与组件化

  • 模块化:将一个程序按照其功能进行拆分,分成相互独立的模块,以便于每个模块只包含与功能相关的内容;

  • 组件化:更关注可复用性,更注重关注点分离,如果从集合角度来看的话,可以说往往一个模块包含了多个组件,简单来说,组件化比模块化粒度更小。其本质都是未了复用和解耦。只不过模块化更侧重于业务功能的划分,组件化更侧重于单一功能的内聚,偏向于解耦;

    四.组件化与插件化

  • 组件化不是插件化,插件化是在【运行时】,而组件化是在【编译时】;

  • 插件化是基于多APK的,而组件化本质上还是只有一个 APK;
  • 组件化和插件化的最大区别(应该也是唯一区别)就是组件化在运行时不具备动态添加和修改组件的功能,但是插件化是可以的;

    五.组件化好处

  • 提高编译速度,从而提高并行开发效率;

  • 稳定的公共模块采用依赖的方式;
  • 每个组件都有自己独立的版本,可以独立编译、测试、打包和部署;
  • 避免模块之间的交叉依赖,做到低耦合、高内聚;
  • 引用的第三方库代码统一管理,避免版本统一,减少引入冗余库;
  • 定制项目可按需加载,组件之间可以灵活组建,快速生成不同类型的定制产品;