当前位置:网站首页>组件化学习(1)思想及实现方式
组件化学习(1)思想及实现方式
2022-04-23 06:07:00 【独饮敌敌畏丶】
1.组件化的介绍
我认为组件化,就是整个项目由app外壳,若干业务组件,以及公共基础组件构成。如图所示

我认为组件化最明显的特点就是:各个业务模块之间没有直接的横向依赖。
意义:不相互依赖,但是可以相互交互;高度解耦;自由拆卸
2.组件化的部署
关于如何将项目组件化,网上有大量的学习资源,我推荐一篇文章,写的超级详细:就是这一篇文章
3.组件之间的通信:
当然最常用的还是阿里开源的ARouter。这个就不多介绍了,但是除了这种方式,还有其他几个比较原始的方式
①使用EventBus
缺点:EventBus维护成本高,不好管理
②使用广播
缺点:广播不好管理,消息一旦没处理好,就统一都发出去了
③使用隐式意图
缺点:在AndroidManifest.xml里面配置的xml太多了
④使用类加载
缺点:容易写错包名类名
原理:打成apk包的时候,点开dex文件,发现各个模块是在一起的,如图
所以这是类加载方式的灵感
⑤使用全局Map(低配版ARouter)
缺点:要注册很多的对象。
每一个Activity创建的时候,要向这个全局Map里面注册。当需要跳转的时候,就从这个全局Map里面根据key去取相应的Activity对象,这样可以完成通信
版权声明
本文为[独饮敌敌畏丶]所创,转载请带上原文链接,感谢
https://blog.csdn.net/afdafvdaa/article/details/121648386
边栏推荐
- EMR Based offline data analysis - polite feedback
- Abnormal record-11
- Oracle和mysql批量查询用户下所有表名和表名注释
- 专用窗口函数rank, dense_rank, row_number
- Typical application scenarios of alicloud log service SLS
- B站用户视频观看记录的存储方案
- Dolphinscheduler调度sql任务建表时The query did not generate a result set异常解决
- Oracle redo log产生量大的查找思路与案例
- 通过rownum来进行区间查询
- Oracle Job定时任务的使用详解
猜你喜欢

Explore how @ modelandview can forward data and pages through the source code

Memcached source code analysis

Oracle Job定时任务的使用详解

Apache SeaTunnel 2.1.0部署及踩坑

10g数据库使用大内存主机时不能启动的问题

Chaos takes you to the chaos project quickly

从0开始封装一套项目的网络请求框架

useReducer基本用法

Using Prom label proxy to implement label based multi tenant reading of Prometheus thanos

实习做了啥
随机推荐
Abnormal record-16
"Write multi tenant" implementation of Prometheus and thanos receiver
同时解决高度塌陷和外边距重叠问题
oracle中生成32位uuid
Redis FAQ
Apache SeaTunnel 2.1.0部署及踩坑
oracle对表字段的修改
基于EMR离线数据分析-反馈有礼
Oracle RAC数据库实例启动异常问题分析IPC Send timeout
oracle分区的相关操作
一个DG环境的ORA-16047: DGID mismatch between destination setting and target database问题排查及监听VNCR特性
TC ebpf practice
组件化学习
Exception record-14
几款电纸书阅读器参数对比
基于ECS搭建云上博客(云小宝码上送祝福,免费抽iphone13任务详解)
iTOP4412 SurfaceFlinger(4.4.4_r1)
Abnormal record-15
记录webView显示空白的又一坑
个人博客网站搭建