组件化学习思想及实现方式
Posted 独饮敌敌畏丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组件化学习思想及实现方式相关的知识,希望对你有一定的参考价值。
1.组件化的介绍
我认为组件化,就是整个项目由app外壳,若干业务组件,以及公共基础组件构成。如图所示
我认为组件化最明显的特点就是:各个业务模块之间没有直接的横向依赖。
意义:不相互依赖,但是可以相互交互;高度解耦;自由拆卸
2.组件化的部署
关于如何将项目组件化,网上有大量的学习资源,我推荐一篇文章,写的超级详细:就是这一篇文章
3.组件之间的通信:
当然最常用的还是阿里开源的ARouter。这个就不多介绍了,但是除了这种方式,还有其他几个比较原始的方式
①使用EventBus
缺点:EventBus维护成本高,不好管理
②使用广播
缺点:广播不好管理,消息一旦没处理好,就统一都发出去了
③使用隐式意图
缺点:在androidManifest.xml里面配置的xml太多了
④使用类加载
缺点:容易写错包名类名
原理:打成apk包的时候,点开dex文件,发现各个模块是在一起的,如图
所以这是类加载方式的灵感
⑤使用全局Map(低配版ARouter)
缺点:要注册很多的对象。
每一个Activity创建的时候,要向这个全局Map里面注册。当需要跳转的时候,就从这个全局Map里面根据key去取相应的Activity对象,这样可以完成通信
以上是关于组件化学习思想及实现方式的主要内容,如果未能解决你的问题,请参考以下文章