资料介绍
软件简介
基于 MVVMFrame 框架为核心基础库构建的组件化方案
主要使用的核心技术
- JetPack(Lifecycle,LiveData,ViewModel,Room)
- Dagger
- DataBinding
- Retrofit
- OkHttp
- Glide
- Kotlin coroutines
- ARouter
架构
MVVMFrameComponent 组件化架构图分层如下:

因为组件化的核心基础库是基于 MVVMFrame,这里贴出 MVVMFrame 的架构图如下:

浅谈组件化
- 什么是组件化?
组件化简单概括就是把一个功能完整的 App 或 模块 拆分成多个子模块, 让每个子模块可以独立编译和运行, 也可以作为 library 合并到宿主App组成一个完整的 App进行编译和运行。每个模块即可以不相互依赖,又可以相互交互。
- 为什么要组件化?
当一个项目随着时间的推移,需求不断的变更与迭代。各个模块也会变的相对复杂。维护难度也会随之增加,时间久了,可能会引起一些新的问题。这时我们就需要组件化。
- 组件化的优势是什么?
当一个App使用组件化开发方案时,主要的优势有:组件化拆分各个模块后,每个子模块都可以独立编译和运行,这样在开发调测某个模块时,可以大大提高编译速度和开发效率。多人开发时,每个人负责独立的模块,更有利于多人团队协作开发。并且各个模块之间的代码边界相对清晰,更易于后期维护。
MVVMFrameComponent 组件化方案
MVVMFrameComponent = MVVMFrame + Component。即 MVVMFrameComponent 采用 MVVM 模式架构的组件化方案。
工程各个 Module 相关说明
app
宿主App:当各个子 Module 作为 library 时,则可将所有组件集成到 宿主App 中。此时 宿主App 则是一个拥有所有组件功能集合的完整的App。
common-base
组件化公共基础库:主要包含 MVVMFrame 快速开发框架,和作为组件化的一些公共的核心基础库,方便快速构建组件化 Project。
common-res
组件化公共资源库:主要方便统一管理各个 Module 中的一些公共资源相关。
module-joke
一个简单的笑话功能模块:主要用来展示基于 MVVMFrame 来实现组件化开发,作为组件化开发的 Module 实现示例之一。
module-news
一个简单的新闻功能模块:主要用来展示基于 MVVMFrame 来实现组件化开发,作为组件化开发的 Module 实现示例之一。
其他
特别说明
Project -> build.gradle 内的自定义变量 isBuildModule
自定义变量 isBuildModule 来统一管理各个子 module 方便在 application 与 library 之间进行切换
当 isBuildModule = true 时,表示 各个子 module 为 application ,即 module 可独立运行 当 isBuildModule = false 时,表示 各个子 module 为 library ,即 module 作为 library 合并到 宿主App
Project -> module-build.gradle
组件化子 module 通用 build.gradle ,方便统一管理
根据 isBuildModule 来统一管理各个子 module 在 application 与 library 之间切换
关于 MVVMFrame
因为 MVVMFrameComponent 的核心基础库是基于 MVVMFrame 的,所以需要对 MVVMFrame 有一定的了解,才能在使用 MVVMFrameComponent 时更加得心应手, 这里不再特意介绍 MVVMFrame 相关的使用,具体介绍你可以直接查看 MVVMFrame
示例
关于各组件/模块共用 Application 初始化
在每一个子模块,写一个IComponentApp的实现类,实现各个子模块共用 Application,示例如下:
//这是app中的示例 class AppComponentApp: IComponentApp { override fun onCreate(app: BaseApp) { DaggerAppMainComponent.builder() .appComponent(app.appComponent) .build() .inject(app) } }
在 Manifest 中配置 meta-data 对应的IComponentApp实现类,示例如下 :
android:name="com.king.mvvm.component.app.AppComponentApp"
android:value="ComponentApp"/>
更多使用详情,请查看app中的源码使用示例
- 基于C++的雷达仿真系统组件化建模 25次下载
- 三彩灯PLC编程课堂信息化教学设计方案 13次下载
- 基于DSP的变电站综合自动化控制系统 23次下载
- 手术病例中结构化数据自动抽取设计方案 3次下载
- 高可靠性组件和解决方案
- 物联网的技术碎片化与业务碎片化资料下载
- 组件放置,接地问题,供电和解耦:音频放大器调试小技巧资料下载
- 个性化广告推荐系统设计方案及应用 13次下载
- Kubernetes云平台的弹性伸缩实现方案 11次下载
- 微信小程序如何开发?微信小程序教程视频常用组件API开发项目实战 88次下载
- 机电一体化课件1:导轨方案及机电系统设计 0次下载
- 变压器状态监测组件功能整合 2次下载
- 倍福EtherCAT端子盒构成创新组件方案 10次下载
- 米波有源相控阵数字化TR组件设计 47次下载
- 半刚性电缆组件技术应用 17次下载
- RVBacktrace RISC-V极简栈回溯组件 429次阅读
- 芯启源电缆组件命名规则 393次阅读
- 模块化不间断电源常见组件,旁路路径的关键 452次阅读
- 使用Jenkins和单个模板部署多个Kubernetes组件 814次阅读
- 光伏组件智能清洁机器人设计方案 2730次阅读
- Delphi数据访问组件方案 848次阅读
- 验证组件配置参数 640次阅读
- 可重用的验证组件中构建测试平台的步骤 623次阅读
- 层次化的UVM TLM连接 671次阅读
- 组件清洁是必要的吗 1261次阅读
- 基于PlatformIO IDE的家庭自动化系统设计方案实现 2489次阅读
- 嵌入式监控系统的主要功能组件及如何实现应用设计 2541次阅读
- 互连组件使用示例 2694次阅读
- 大规模物联网的要求以及解决方案组件 1880次阅读
- 度小满套数字化资产应用管理方案解析 1039次阅读
下载排行
本周
- 1NB-IoT芯片厂商的资料说明
- 0.31 MB | 22次下载 | 1 积分
- 2智慧监狱建设的核心终端—智慧监仓屏
- 0.25 MB | 2次下载 | 免费
- 3PC318C016M/D 200V半桥栅极驱动器技术手册
- 0.77 MB | 2次下载 | 免费
- 45.0SMDJ200A单向TVS瞬态抑制二极管规格书
- 0.88 MB | 1次下载 | 免费
- 5PC318C041EQ 200V半桥栅极驱动器技术手册
- 0.50 MB | 次下载 | 免费
- 6PC318C042NM 200V半桥栅极驱动器技术手册
- 0.55 MB | 次下载 | 免费
- 7技嘉H110主板IT8628E_BX IO电路图资料
- 2.61 MB | 次下载 | 1 积分
- 8H110主板CPU PWM芯片ISL95858HRZ-T核心供电电路图资料
- 0.63 MB | 次下载 | 1 积分
本月
- 1元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 241次下载 | 免费
- 2元宇宙底层硬件系列报告
- 13.42 MB | 184次下载 | 免费
- 32022 年展望報告 – 半導體產業
- 1.43 MB | 136次下载 | 免费
- 4晶振与滤波器应用电路《电子工程师必备:元器件应用宝典》
- 1.57 MB | 90次下载 | 免费
- 5汽车电子行业深度解析:智能化与电动化方兴未艾
- 6.47 MB | 71次下载 | 免费
- 6中国DPU行业白皮书
- 23.80 MB | 37次下载 | 免费
- 7晶科鑫代理线-微盟电子2021年度产品目录选型手册
- 14.75 MB | 27次下载 | 免费
- 8NB-IoT芯片厂商的资料说明
- 0.31 MB | 22次下载 | 1 积分
总榜
- 1matlab软件下载入口
- 未知 | 935137次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233089次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191425次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183352次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81602次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73822次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App






创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论