当前位置:网站首页>组件化学习(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
边栏推荐
- Oracle和mysql批量查询用户下所有表名和表名注释
- Build a cloud blog based on ECS (polite experience)
- sys.dbms_scheduler.create_job创建定时任务(功能更强大丰富)
- Build a cloud blog based on ECS (send blessings on the cloud Xiaobao code and draw iphone13 for free)
- Abnormal record-13
- Memcached source code analysis
- Apprentissage par composantes
- Prometheus thanos Quick Guide
- oracle库恢复数据
- Django::Did you install mysqlclient?
猜你喜欢

this.getOptions is not a function

专用窗口函数rank, dense_rank, row_number

JVM basics you should know

Winter combat camp hands-on combat - first understand the cloud foundation, hands-on practice ECS ECS ECS novice on the road to get the mouse cloud Xiaobao backpack shadowless

Apache SeaTunnel 2.1.0部署及踩坑

Practice using polardb and ECs to build portal websites

搭建基于OSS的图片分享网站-反馈有礼

冬季实战营 动手实战-初识上云基础,动手实操ECS云服务器新手上路 领鼠标 云小宝 背包 无影

【机器学习】笔记 4、KNN+交叉验证

iTOP4412 HDMI显示(4.4.4_r1)
随机推荐
oracle数据库将多个列的查询结果集合并到一行中
专用窗口函数rank, dense_rank, row_number
19C中ASM network未自动启动的处理
Chaos带你快速上手混沌工程
pycharm Install packages failed
Prometheus cortex Architecture Overview (horizontally scalable, highly available, multi tenant, long-term storage)
ACFS文件系统创建扩大缩小等配置步骤
How does thanos configure different data retention durations for different tenants
利用队列实现栈
Winter combat camp hands-on combat - MySQL database rapid deployment practice lead mouse cloud Xiaobao
Implementation of multi tenant read and write in Prometheus cortex
Abnormal record-20
一个DG环境的ORA-16047: DGID mismatch between destination setting and target database问题排查及监听VNCR特性
oracle中生成32位uuid
useReducer基本用法
npm ERR code 500解决
mysql和pgsql时间相关操作
记录webView显示空白的又一坑
B站用户视频观看记录的存储方案
Dolphinscheduler配置Datax踩坑记录