美文网首页程序员Android开发经验谈Android知识
Android组件化开发实践(二):组件化架构设计

Android组件化开发实践(二):组件化架构设计

作者: 云飞扬1 | 来源:发表于2018-09-26 18:30 被阅读188次

    先说说我自己的组件化架构设计方案,请看下图:


    组件化架构设计图

    图中可以看到,从上往下分为4层:APP壳工程、常规业务组件层、基础业务组件层、基础功能组件层。

    为了便于理解,按照从下往上的顺序来讲讲我的分层思路。

    • 基础功能组件
      这个层的组件都是最基础的功能,通常它不包含任何业务逻辑,也可以说这些组件是一些通用的工具类。例如日志记录组件,它只是提供了日志记录的能力,你要记录什么样的日志,它并不关心;例如基础UI组件,它是一个全局通用的UI资源库;例如网络服务组件,它封装了网络的请求能力。
    • 基础业务组件
      该层组件是对一些系统通用的业务能力进行封装的组件。例如公共业务组件里,我封装了BaseActivity、BaseFragment等;例如分享能力组件,我封装了微信、QQ、微博等的分享能力,其他业务只要集成该组件就能进行相关分享;例如共享公共数据组件,我封装了应用可以全局访问的数据,如用户登录信息等。
    • 常规业务组件
      该层的组件就是我们真正的业务组件了。我们通常按照功能模块来划分业务组件,例如注册登录、用户个人中心、APP的首页模块等。这里的每个业务组件都是一个小的APP,它必须可以单独编译,单独打包成APK在手机上运行。
    • 核心管理组件
      主要包括路由服务组件、组件生命周期管理组件。路由主要是为了解决组件间通信问题,而组件生命周期管理主要是为了解决组件的初始化等问题。
    • APP壳工程
      壳工程依赖了需要集成的业务组件,它可能只有一些配置文件,没有任何代码逻辑。根据你的需要选择集成你的业务组件,不同的业务组件就组成了不同的APP。

    组件之间必须遵循以下规则:

    • 只有上层的组件才能依赖下层组件,不能反向依赖,否则可能会出现循环依赖的情况;
    • 同一层之间的组件不能相互依赖,这也是为了组件之间的彻底解耦;

    现在已经有很多成熟的组件化框架了,比较著名的有阿里的手淘atlas框架https://github.com/alibaba/atlas,但是这些框架可能都过于复杂,上手难度高,对很多人来说并不一定好用。总的说来,没有最好的架构设计,只有合适自己的架构设计,不能为了架构而架构。

    系列文章
    Android组件化开发实践(一):为什么要进行组件化开发?
    Android组件化开发实践(二):组件化架构设计
    Android组件化开发实践(三):组件开发规范
    Android组件化开发实践(四):组件间通信问题
    Android组件化开发实践(五):组件生命周期管理
    Android组件化开发实践(六):老项目实施组件化
    Android组件化开发实践(七):开发常见问题及解决方案
    Android组件化开发实践(八):组件生命周期如何实现自动注册管理
    Android组件化开发实践(九):自定义Gradle插件

    相关文章

      网友评论

        本文标题:Android组件化开发实践(二):组件化架构设计

        本文链接:https://www.haomeiwen.com/subject/ijkwnftx.html