组件化学习(1)思想及实现方式

本文介绍了Android项目的组件化实现,强调了组件化的主要特点是业务模块间的解耦和独立性。文中提到了组件化的部署,并推荐了一篇详细的学习资源。此外,文章探讨了不同组件间通信的几种方法,包括ARouter、EventBus、广播、隐式意图、类加载以及全局Map,同时列举了各种方式的优缺点。
摘要由CSDN通过智能技术生成

1.组件化的介绍

我认为组件化,就是整个项目由app外壳,若干业务组件,以及公共基础组件构成。如图所示
在这里插入图片描述
我认为组件化最明显的特点就是:各个业务模块之间没有直接的横向依赖

意义:不相互依赖,但是可以相互交互;高度解耦;自由拆卸

2.组件化的部署

关于如何将项目组件化,网上有大量的学习资源,我推荐一篇文章,写的超级详细:就是这一篇文章

3.组件之间的通信:

当然最常用的还是阿里开源的ARouter。这个就不多介绍了,但是除了这种方式,还有其他几个比较原始的方式

①使用EventBus

缺点:EventBus维护成本高,不好管理

②使用广播

缺点:广播不好管理,消息一旦没处理好,就统一都发出去了

③使用隐式意图

缺点:在AndroidManifest.xml里面配置的xml太多了

④使用类加载

缺点:容易写错包名类名
原理:打成apk包的时候,点开dex文件,发现各个模块是在一起的,如图在这里插入图片描述
所以这是类加载方式的灵感

⑤使用全局Map(低配版ARouter)

缺点:要注册很多的对象。
每一个Activity创建的时候,要向这个全局Map里面注册。当需要跳转的时候,就从这个全局Map里面根据key去取相应的Activity对象,这样可以完成通信

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值