Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
android-mvp-mvvm-flytour
提交
3dea15d3
A
android-mvp-mvvm-flytour
项目概览
门心叼龙
/
android-mvp-mvvm-flytour
通知
7
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
6
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
android-mvp-mvvm-flytour
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
6
Issue
6
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3dea15d3
编写于
1月 26, 2019
作者:
门心叼龙
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
readme submit
上级
f61845b8
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
4 addition
and
4 deletion
+4
-4
README.MD
README.MD
+4
-4
未找到文件。
README.MD
浏览文件 @
3dea15d3
### 1.前言
在长期的实战开发过程中,随着APP功能的不断增多,业务逻辑的越来越复杂,各个模块之间有着错综复杂的关系,各个模块高度的耦合在一起,修改一个功能牵一发而动全身,长期以来整个项目就是铁板一块。这样非常的不利于项目的后期的维护和开发。
*
传统架构图:
<br>
![](
https://img-blog.csdnimg.cn/20190126210043776.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dlZHVvXzgz,size_16,color_FFFFFF,t_70
)
![](
https://img-blog.csdnimg.cn/20190126210043776.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dlZHVvXzgz,size_16,color_FFFFFF,t_70
)
<br>
上图是目前比较普遍使用的Android APP技术架构,往往是在一个界面中存在大量的业务逻辑,而业务逻辑中充斥着各种网络请求、数据操作等行为,整个项目中也没有模块的概念,只有简单的以业务逻辑划分的文件夹,并且业务之间也是直接相互调用、高度耦合在一起的。
*
传统业务架构图:
<br>
![](
https://img-blog.csdnimg.cn/20190126215521137.png
)
![](
https://img-blog.csdnimg.cn/20190126215521137.png
)
<br>
为了着解决这些问题,近年来也涌现了多种插件框架实现方案,有的叫组件化,很多人将插件化和组件化混为一谈,虽然其目的都是一致的,对单一结构体的项目进行拆分进行解耦,但是其实两者是有着本质的区别。
*
组件化:有开发模式和发布模式之分,在开发模式下每个业务模块都是都是一个独立的apk,在发布模式打包的时候,每个业务模块都变成了一个个独立的组件library。
*
插件化:没有开发模式和发布模式之分,每个业务模块就是一个独立的apk,通过主工程apk来动态加载部署各个业务模块apk。
...
...
@@ -27,7 +27,7 @@ https://github.com/DroidPluginTeam/DroidPlugin
以上就是几种常见的插件化框架,但是他们都是有一定学习成本的,实现比较麻烦,相比较而言组件化的实现还是比较简单的
### 3.组件化
组件化架构图:
<br>
![](
https://img-blog.csdnimg.cn/20190126210220224.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dlZHVvXzgz,size_16,color_FFFFFF,t_70
)
![](
https://img-blog.csdnimg.cn/20190126210220224.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dlZHVvXzgz,size_16,color_FFFFFF,t_70
)
<br>
上图是组件化工程模型,为了方便理解这张架构图,下面会列举一些组件化工程中用到的名词的含义:
*
集成模式:所有的业务组件被“app壳工程”依赖,组成一个完整的APP;
*
组件模式:可以独立开发业务组件,每一个业务组件就是一个APP;
...
...
@@ -77,7 +77,7 @@ sourceSets {
}
}
```
4.
3 组件之间调用和通信
*
4.3 组件之间调用和通信
在组件化开发的时候,组件之间是没有依赖关系,我们不能在使用显示调用来跳转页面了,因为我们组件化的目的之一就是解决模块间的强依赖问题,假如现在要从A业务组件跳转到业务B组件,并且要携带参数跳转,这时候怎么办呢?而且组件这么多怎么管理也是个问题,这时候就需要引入“路由”的概念了,由本文开始的组件化模型下的业务关系图可知路由就是起到一个转发的作用。这里我们会用到开源库的“ActivityRouter”。
<br>
![](
https://img-blog.csdnimg.cn/20190126212318172.png
)
### 5. FlyTour组件化框架
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录