Android Componentization (组件化架构) 演变

本文探讨了Android组件化的发展历程,从传统项目结构、模块化到组件化。组件化通过代码和资源隔离、路由解耦,提高了项目的可维护性和复用性。文章详细介绍了组件化架构的定义、作用、特点,并通过实例展示了如何进行组件化实践,包括base公用库、模块独立与集成、多Application初始化、界面跳转、代码和资源隔离,以及数据和资源复用。最后,作者强调了组件化在团队开发中的重要性。
摘要由CSDN通过智能技术生成

1.前言

  • 组件化 在Android开发的近几年来,已经由单纯编写代码的概念(工具类、第三方组件等等)迁移并应用于项目的架构上,而在应用项目架构过程中又演变出多种不同的实现方案,随着现代APP应用市场的快速发展,应用开发的时间、效率、稳定性、可扩展性、灵活性都要体现出高标准的行业水平,因此开发者就想出把项目划分多个模块,并且需求满足协同与独立开发,组件化就由此诞生。
  • 文章中实例 linhaojian的Github

2.目录

目录.png


3.组件化发展史

  • 项目架构发展过程中,包含非常多种实现方式,我将它们划分了三种 传统、模块、组件
    项目架构分类.png
3.1 传统化项目结构

传统化结构.png

  • 传统化结构:通过 项目内业务分包 的方式进行开发,这种方式 维护、扩展都非常困难,并且不方便团队开发,只适应小项目
3.2 模块化项目结构

模块化结构.png

  • 模块化结构:在AndroidStudio 开发工具内,通过 创建module 的方式进行划分不同的业务功能,然后在主项目与module 或者 module间构建关联(这种关联方式耦合性高),当module不合理设置的适合,会出现module之间类库的冗余或者重复使用。
3.3 组件化项目结构

组件化结构.png

  • 组件化结构:组件化就是在模块化的思想上优化演变出来,在模块化思想上,通过1.抽出module间公用部分;2.使用路由Router解耦module间的交互;3.gradle集成与独立配置;4.代码与资源的隔离,使得module同时支持集成开发与独立开发。

4.定义

  • 将重复的代码进行封装,业务功能划分为最小粒子。

5.作用

  • 1.复用代码
  • 2.降低业务功能间的依赖或者关联
  • 3.提供单独业务运行与调试

6.特点

  • 1.module具备独立性,可单独运行或调试
  • 2.module间高度解耦,通过路由交互
  • 3.代码与资源隔离
  • 4.module划分尽可能粒子化,便于维护与复用

7.组件化架构

  • 借助以下的包含实例的图,便于更深入了解 组件化 的架构;
    组件化分层.png
  • 图中总共分4层 组件集成、业务组件、功能组件、运行环境
    • 组件集成:将所有业务组件组合到APP的空壳项目中(空壳项目中只包含启动页,无任何业务逻辑);
    • 业务组件:将项目按照功能需要划分粒度较小的module;
    • 功能组件:将不同业务组件中公用部分封装为各种类库;
    • 运行环境:项目开发中所依赖的语言库或者开发环境;
  • 从图中可以发现,组件化只存在 垂直关系,使各业务功能更独立与清晰,更适合现代团队开发的要求。

8.组件化实践

  • 下面简单配合例子实践组件化开发过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值