| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android 组件化架构-简谈 -> 正文阅读 |
|
[移动开发]Android 组件化架构-简谈 |
说在前面:随着业务的增加,由于单一工程下业务全都集合在主工程下,而导致业务间相互交错的依赖耦合越来越严重,那么就可能出现动一触千的现象,这时候将业务按照功能的不同抽离出来就显得迫在眉睫。 了解组件化在了解组件化之前,我们需要先了解模块化。 组件化我们需要解决的问题
接下来我们就一个问题一个问题的开始解决 业务模块独立调试!!由于是我只在单一工程下做过这个,所以咱不谈多工程下该怎么做(想要知道的可以点击这篇文章的最下面的参考链接)
我们知道,一个app不但要是application 模式下,还需要设置一个启动页面,和设置applicationid。那我们还得动态的去配置androidmanifest和applicationid。 不同业务组件间的页面跳转这里我选择的是阿里开源的Arouter方案,这里给大家贴一个入口,具体使用自己去看,我们可以利用该路由方案实现页面间的跳转,就如同使用startActivity一样。入口 不同业务组件间的通信比如我在A页面(属于A业务组件)想要获取B页面(B业务组件)中的一些属性值,那我们该怎么办呢?这个也是比较好办的,我们可以将外部可能用到的服务暴露给外部,这也叫服务暴露组件。
然后我们定义一个路由表,包含对外提供跳转的页面、服务的路由地址,注意后面服务提供的组件必须使用该路由信息去构建服务的实现路由
然后我们实现一个便于外部调用的Util
然后我们开始实现服务提供方的组件
然后开始实现服务(特别注意 记得用@Route注解标识路由路径,并且这个路径是从上方路由表获得)
然后服务调用者组件只需要依赖服务暴露组件,皆可实现业务需求了。 获取Fragment实例相信根据上面的讲解,Fragment的获取也能get到了,其实也是利用Arouter,我们只需要在暴露服务组件中的路由表中再添加一个路由项,然后在提供服务的组件方中实现,并加上@Route(path = RouteTable.****)直接和activity一样调用就行,这里不贴代码了。 Application在开发过程中我们可能会在很多地方需要使用到Application的实例。或者需要在application的oncreate方法中进行初始化。但是我们又没依赖壳工程,也不能依赖壳工程,那该怎么办呢?
再来一个app模块下:
给出参考地址 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 19:12:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |