从零开始搭建Android组件化框架,附Demo和源码

本文介绍如何从零开始搭建Android组件化框架,通过一个实际的Demo详细阐述组件化配置流程,包括配置管理、组件模式与集成模式的切换、组件间通信等,提供Demo源码供学习参考。
摘要由CSDN通过智能技术生成

热文导读 

如何进阶成为Java和Android架构师?

Android组件化demo实现以及遇坑分享

不能All in的人别去创业公司

 

1、问题

在已经开发过几个项目的童鞋,如果这时需要重新开发一个新项目,是否需要自己重新搭建框架呢,还是从老项目中拷贝粘贴? 

 

我们是否可以封装一个底层的lib库,这个底层的公共基础库 包括了一些第三方库(如: okhttp, retrofit2, glide 等)的初始化及简单的封装和一些公共的base类.这样我们重新开发一个新项目只要依赖这个库就马上可以进行业务逻辑的开发了.

 

组件化简单概括就是把一个功能完整的 App 或模块拆分成多个子模块, 每个子模块可以独立编译和运行, 也可以任意组合成另一个新的 App 或模块, 每个模块即不相互依赖但又可以相互交互, 遇到某些特殊情况甚至可以升级或者降级.


大家可以点击该文章查看 [组件化框架简介] :https://www.jianshu.com/p/40e745038471

 

2、前言

 

从今年开始接触组件化项目,刚开始感觉组件化非常的高大上,经过一段时间的了解,现在对组件化终于有了一定的了解,为了能更熟悉运用于实际的项目中,决定自己写一个demo框架,也想解决上述的问题,这章文档主要是对我所学习的内容做一个总结,巩固Android的一些基础知识,非常适合初学者,并且架构简单,学习成本低,对于一个急需快速组件化拆分的项目是很适合的. 望高手们多指教!

 

附上 Demo地址   Github : https://github.com/tome34/frameDemoMo2

 

请使用 Android studio 3.0 以上版本

 

老规则,先上效果图

 

 

备注:该Demo只完成十分之一,有时间会一直更新

 

3、demo 架构详解

 

上图是组件化工程模型,下面会列举一些组件化工程中用到的名词的含义:

 

  • 集成模式: 所有的业务组件被“app壳工程”依赖,组成一个完整的APP;

  • 组件模式:   可以独立开发业务组件,每一个业务组件就是一个APP;

  • app壳工程: 负责管理各个业务组件,和打包apk,没有具体的业务功能;

  • 业务组件: 根据公司具体业务而独立形成一个的工程;

  • Main组件:属于业务组件,指定APP启动页面、主界面 ;

  • Common组件:   也就是功能组件(component_base 模块),支撑业务组件的基础,提供多数业务组件需要的功能,例如提供网络请求功能;

  • component_data组件: 这里我存放了与项目相关的公共数据,例如bean的基类,IntentKV存数据的键值对等.

  • SDK组件: 集成微信,支付宝支付,分享,推送等常用的第三方框架.

 

组件化的优点

Android APP组件化架构的目标是告别结构臃肿,让各个业务变得相对独立,业务组件在组件模式下可以独立开发,而在集成模式下又可以变为arr包集成到“app壳工程”中,组成一个完整功能的APP;

从组件化工程模型中可以看到,业务组件之间是独立的,没有关联的,这些业务组件在集成模式下是一个个library,被app壳工程所依赖,组成一个具有完整业务功能的APP应用,但是在组件开发模式下,业务组件又变成了一个个application,它们可以独立开发和调试,由于在组件开发模式下,业务组件们的代码量相比于完整的项目差了很远,因此在运行时可以显著减少编译时间。

 

 

这是组件化工程模型下的业务关系,业务之间将不再直接引用和依赖,而是通过“路由”这样一个中转站间接产生联系,而Android中的路由实际就是对URL Scheme的封装;

对阿里巴巴的Arouter不熟悉的可以点击了解:https://github.com/alibaba/ARouter

 

 

4、项目中base基类和Libraries的简介

 

项目目录.png

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值