0°

Android官方MVVM框架实现组件化之ARouter串联各模块(二)

内容预览:
  • 4.支持URL跳转,方便H5和原生混合开发~
  • 乐乐有话说 所谓靠谱的人,就是凡事有交代,件件有着落,事事有回音~
  • 扫描下方二维码,注册 100offer,谈谈你对下一份工作的期待~

始发于微信公众号: 程序员小乐

分享编程技能、互联网技术、生活感悟、打造干货分享平台,将总结的技术、心得、经验分享给大家,这里不只限于技术!值得你去关注,点击上方 蓝字 快速关注。本号支持 投稿


  前言



Android官方MVVM框架实现组件化之ARouter串联各模块(二)

0-演示项目MVVM组件化架构图


ARouter路由器简直是MVVM组件化的一个天赐之物,非常适合在组件化中使用,可以很方便滴获取Fragment、跳转Activity、拦截跳转、启动服务等等。

ARouter官方地址:https://github.com/alibaba/ARouter

上面结构图中,module_girls、module_news和lib_commoin 中都可能存在Activity,Fragment或者Service这些可以被ARouter支持的组件,其实ARouter的跳转是根据我们指定的路径去匹配的,只要路径是匹配的就可以跳转、获取或者是启动,最方便的是还支持参数携带,本文章只是讲一下在MVVM中ARouter最方便的使用场景,更多使用详情还请参考官方说明和官方Demo,官方说得很清楚了。


 一、组件化中ARouter使用配置注意事项



本演示项目中AppModulelib一个有七个,如果是你每一个都用到了ARouter的功能,那么就需要在每一个模块的build.gradle中添加配置,记住是每一个。


Android官方MVVM框架实现组件化之ARouter串联各模块(二)


如果你的模块需要打包成apk或者是aar之类的,并且你开取了代码混淆,那么需要在每一个模块的proguard-rules.pro文件中添加代码keep:


Android官方MVVM框架实现组件化之ARouter串联各模块(二)


  二、Activity的跳转和拦截



首先我们需要在公共库 lib_common中添加一个类来存放ARouter的跳转获取使用的path:


Android官方MVVM框架实现组件化之ARouter串联各模块(二)

Android官方MVVM框架实现组件化之ARouter串联各模块(二)


需要被跳转的Activity增加Router注解,就是声明已下自己的path路径:


Android官方MVVM框架实现组件化之ARouter串联各模块(二)

Android官方MVVM框架实现组件化之ARouter串联各模块(二)


有兴趣的可以看一下ActivityGirls 的布局文件:


Android官方MVVM框架实现组件化之ARouter串联各模块(二)

Android官方MVVM框架实现组件化之ARouter串联各模块(二)


ARouter的拦截很简单的,写一个类实现IInterceptor接口,用Interceptor注解写上拦截器的等级和名字就可以了,不需要额外的去注册拦截器,在ARouter执行跳转时会先执行拦截器。关于java AOP注解的使用请看我之前的文章《大话AOP与Android的爱恨情仇》(https://www.jianshu.com/p/ce42927f6398)


Android官方MVVM框架实现组件化之ARouter串联各模块(二)


跳转的时候就厉害了哦,可以支持很多的参数携带,Activity的跳转还可以自动以转场动画:


Android官方MVVM框架实现组件化之ARouter串联各模块(二)

Android官方MVVM框架实现组件化之ARouter串联各模块(二)


  三、Fragment的获取



看一下需要被获取Fragment:


Android官方MVVM框架实现组件化之ARouter串联各模块(二)

Android官方MVVM框架实现组件化之ARouter串联各模块(二)


获取Fragment的时候也很单纯:


Android官方MVVM框架实现组件化之ARouter串联各模块(二)


  四、ARouter所谓的服务获取



一开始看到这个,我还以为是获取Android中的Service,其实不是的,ARouter所谓的服务就是直接或者是间接实现ARouter提供的IProvider接口的类。


首先我们可以先写一个继承IProvider接口的接口,我们可以在自己的接口中增加自己想要的方法:

Android官方MVVM框架实现组件化之ARouter串联各模块(二)


实现这个接口:


Android官方MVVM框架实现组件化之ARouter串联各模块(二)


使用的时候可以有多种方式了:


服务声明:


Android官方MVVM框架实现组件化之ARouter串联各模块(二)


服务使用:


Android官方MVVM框架实现组件化之ARouter串联各模块(二)


官方推荐注解的方式,比较靠谱一些。


  总结



1.模块之间更加低耦合,各模块之间不需要关注彼此,要埋头开发自己的功能就行了。

2.Activity的跳转、Fragment的获取、ARouter所谓的Service 的获取,都变得很隐式,执行之前不知道对方具体是谁,只要对方注册了对应的path路径就可以了。

3.支持Activity的跳转的拦截,我测试似乎不支持Fragment的获取拦截,有些遗憾,在不满足情况的条件下模块可以对外屏蔽。

4.支持URL跳转,方便H5和原生混合开发。


Talk is cheap,show you the code

https://github.com/Dawish/GoogleArchitectureDemo


如何您想进技术群和大牛们交流,关注公众号在后台回复 “加群”,或者 “学习” 即可

链接:http://www.jianshu.com/p/9c83cc44463c

本文来自Dawish_大D投稿

如果您觉得不错,请别忘了分享到您的朋友圈让更多的人看到!! 您的举手之劳,就是对我最好的支持,非常感谢!

每日英文


Sometimes, if you persist in doing that which you least like to do, in the end you will receive that which you want the most. 

有时候,坚持了你最不想干的事情之后,便可得到你最想要的东西。


乐乐有话说


所谓靠谱的人,就是凡事有交代,件件有着落,事事有回音。不玩心机,真诚以待。


Android官方MVVM框架实现组件化之ARouter串联各模块(二)


推荐阅读


Android官方MVVM框架实现组件化之ARouter串联各模块(二)

看完本文有收获?请转发分享给更多人
关注「杨守乐」,提升编程技能

赞助商

优秀人才不缺工作机会,只缺适合自己的好机会。但是他们往往没有精力从海量机会中找到最适合的那个。100offer 会对平台上的人才和企业进行严格筛选,让「最好的人才」和「最好的公司」相遇。

扫描下方二维码,注册 100offer,谈谈你对下一份工作的期待。一周内,收到 5-10 个满足你要求的好机会!


以上就是:Android官方MVVM框架实现组件化之ARouter串联各模块(二) 的全部内容。

本站部分内容来源于互联网和用户投稿,如有侵权请联系我们删除,谢谢。
Email:[email protected]


0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论