利用Router将安卓项目模块化

最近一直在学习安卓项目架构方面的知识,看了很多文章,接触到了很多架构思想,例如谷歌官方的MVP+Clean架构:https://github.com/glomadrian/MvpCleanArchitecture 、TMVP架构://www.greatytc.com/p/b49958e1889d 、模块化组件化http://blog.csdn.net/halibobo1998/article/details/51799915 。今天就说说利用开源框架Router 将项目模块化组件化。

先来一张图感受下:


APP组件是壳,并依赖其他的四个module,同时我们抽取一个基础库,我们可以将例如网络请求,图片加载,公用的UI,常用工具类,BaseActivty等等封装到里面,然后所有module都依赖这个基础库。这是我项目抽取的基础库:


当项目越来越大,开发人员越来越多,组件化开发的优势就体现出来了,由于每个module相互独立,协同开发时就非常爽,每个模块可以独立开发,编译运行开发单个模块时可以共享资源和工具类等等。

但是。。。。。。。。

模块之间怎么通讯呢?例如我要从A模块跳转到B模块,由于模块相互独立,A中并不能找到B的引用,所以这时候就用用到Router路由器模式了。

现在简单介绍下Router :

首先你的gradle要3.3 下载地址http://download.csdn.net/album/detail/2265/1/2

修改你项目gradle/wrapper/gradle-wrapper.propertities


在你项目的build.gradle添加依赖


在你的module的build.gradle添加


在你app的build.gradle中添加


在主工程的Application中初始化


ModuleA中的Activity


ModuleB中的Activity

这样就可以实现各module之间的通讯了

以上是楼主简单的应用,希望能帮到各位。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,982评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,859评论 18 139
  • 今天来回味下组件化和模块化,这2种说法时一回事,当然还是有区别的,下面再详细说,其实很简单,只是设计范围的不同,也...
    前行的乌龟阅读 48,911评论 6 94
  • 今天把这几天所有学的都练了,宇彤老师给我点评的让我找到弯腰搬重物的感觉,就是搬了重物就不会说了,唉允许自己慢慢找,...
    小芫阅读 159评论 0 0
  • 早上藍樂被接二連三的手機聲吵醒,其實她不怎麼想爬起來去拿手機然後講“喂?不管你是誰,你都影響了我的睡眠品質,...
    唯妙唯笑阅读 191评论 0 0