arouter跨module传递消息_ARouter Module模块化框架

利用ARouter实现的模块化框架,可以单独编译运行某个module,通过开关修改依赖关系。

模块化最基本的特性就是独立,降低耦合性。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

在app开发过程中,最好的设计方式,就是当依赖解除后,app依旧能正常运行(在编译阶段),代码是可以build的,不会出错,只不过对应的代码没有实现而已。

这个框架的设计,一个是利用ARouter解决了项目间的耦合问题,第二个是提供了模块移除依赖后,可以独立运行的配置。

整个项目的框架如下图:

main.png

这里我将模块分为三层:

最上层是app层,承接所有的业务。依赖每个业务module和接口lib_base。

第二层是业务层,根据不同的需求和业务,剥离出各个module。只依赖lib_base,并且实现接口。

第三层是base层,放置各个业务暴露出来的接口,或者一些非常基础的公共类、库等。

三层逻辑中,抽离的是业务层代码,base层不作操作。所有的依赖控制,都在项目的gradle.properties文件中,用isModule的值控制。

gradle.properties.png

同时在app层做好分离的build.gradle配置

app.png

在业务层module中的build.gradle配置

module1.png

module2.png

这里对模块做了一点小的操作,可以使模块在library和application之间切换。在实际项目中,也可以为每个module添加独有的变量开关,在开发自己模块的时候,只需先单独module运行,测试完毕后再接入app,最后进行调试。避免了整个工程运行的耗时,往往工程越大,项目跑一次的时间也就越久,从而节省时间,加快效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值