Android 组件化架构设计

为什么需要组件化

小项目是不需要组件化的。当一个项目有数十个人开发,编译项目要花费10分钟,修改一个bug就可能会影响到其他业务,小小的改动就需要进行回归测试,如果是这种项目,那么我们需要进行组件化了

组件化架构

这里先提几个概念,我们日常业务需求开发的组件叫做业务组件,如果这个业务需求是可以被普遍复用的,那么叫做业务基础组件,譬如图片加载、网络请求等框架组件我们称为基础组件。搭建所有组件的app组件称为壳组件/工程

这里先提几个概念,我们日常业务需求开发的组件叫做业务组件,如果这个业务需求是可以被普遍复用的,那么叫做业务基础组件,譬如图片加载、网络请求等框架组件我们称为基础组件。搭建所有组件的app组件称为壳组件/工程。接下来看一张架构图:
Android 组件化架构设计_第1张图片
实线表示直接依赖关系,虚线表示间接依赖。比如壳工程肯定是要依赖业务基础组件、业务组件、module_common公共库的。业务组件依赖业务基础组件,但并不是直接依赖,而是通过”下沉接口“来实现间接调用。业务组件之间的依赖也是间接依赖。最后common组件依赖所有需要的基础组件,common也属于基础组件,它只是统一了基础组件的版本,同时也提供了给应用提供一些抽象基类,比如BaseActivity、BaseFragment,基础组件初始化等。

组件化带来的优势

加快编译速度:每个业务组件都可以单独运行调试,速度提升好几倍。举个例子:video组件单独编译运行时间为3s,因为此时AS只会运行video组件以及video组件依赖的组件的task,而如果集成编译时间为10s,app所引用的所有的组件的task都会执行。可见,效率提升了3倍。

提高协作效率:每个组件都有专人维护,不用关心其他组件是怎么实现的,只需要暴露对方需要的数据。测试也不需要整个回归,只需要重点测试修改的组件即可。

功能重用:一次编码处处复用,再也不需要复制代码了。尤其是基础组件和业务基础组件,基本上调用者根据文档就可以一键集成和使用。

前面有提到非大型项目一般不会进行组件化,但是就像上面提到的功能重用,这个优势并不是只能用到大型项目 。我们可以在写需求或库时完全可以拥有组件化思想,把它们单独写成一个基础组件或业务基础组件。当第二个项目来的时候正好也需要这个组件,那我们就省去了拆出这个组件的时间(因为写需求的时候很可能会造成大量耦合,后续拆分要花费时间),比如登录组件,分享组件等等都是可以在一开始就写成组件的。

如何学习组件化

为了更好地帮助大家掌握组件化的知识,更好地理解组件化的核心底层原理,里面对相关知识点有详尽的说明,希望可以帮助大家学习提升。

由于篇幅原因,以下仅已截图展示部分内容,这份纯手写笔记已经被整理成了PDF文档,完整版PDF电子书,文末点击卡片即可免费领取
Android 组件化架构设计_第2张图片

《高级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
    架构分析
    ……
    在这里插入图片描述

你可能感兴趣的:(Android,知识点,android,android,studio,android-studio)