路由框架ARouter最全源码解析

作者: juexingzhe | 来源:发表于2017-07-25 00:04 被阅读625次

ARouter是2017年阿里巴巴开源的一款Android路由框架,官方定义:
ARouter是Android平台中对页面,服务提供路由功能的中间件,提倡简单且够用

有下面几个优势:

1.直接解析URL路由,解析参数并赋值到对应目标字段的页面中;

2.支持多模块项目;

3.支持InstantRun;

4.拦截器策略,允许自定义;

5.提供IoC容器,控制反转;

6.映射关系自动注册;

7.灵活的降级策略.

通过解析这个框架会学习或者涉及到下面的技术:

1.scheme,url的统一管理跳转

2.APT,编译器注解处理技术,自动注册使用的就是编译期间生成映射文件来自动注册

3.反射,比如服务的实例化

4.IoC与依赖注入,比如服务和参数由框架进行自动赋值,解放用户的双手

5.拦截器的思想,AOP的设计思想

6.多线程思想

7.降级策略

8.服务接口设计思想,方便扩展

针对上面提到的技术点,中间由于项目忙的关系,断断续续做了一个月才算把大体内容进行了梳理,做了一些分享:

ARouter解析一:基本使用及页面注册源码解析

ARouter解析二:页面跳转源码分析

ARouter解析三:URL跳转本地页面源码分析

ARouter解析四:发现服务和Fragment

ARouter解析五:IoC与依赖注入

ARouter解析六:拦截器

ARouter解析七:降级策略

总结起来与技术点的对应关系:

解析一,二涉及到技术点1,2
解析三涉及到技术点1
解析四涉及到技术点1,2,3,8
解析五涉及到技术点2,3,4
解析六涉及到技术点1,2,5,6
解析七涉及到技术点1,2,7,8

很感谢开源工作者的艰辛工作,开源精神万岁!

如果对大家能提供一点帮助,也是我的荣幸,谢谢!

欢迎关注公众号:JueCode

相关文章

网友评论

  • ZhaoChong:你好,看了你的arouter源码分析很棒,但是编译生成的模板代码,前提是各个模块在一个仓库。如果分仓库,还能实现吗?
  • 696e9de18e1a:这个框架可以自定义处理跳转逻辑吗,
    696e9de18e1a:@fengh 不,我所指的是重新实现跳转逻辑
    00b9bcb8abc7:如果我理解的没错滴话 应该是可以滴, 比如 在拦截器中重新设置路由
    Class c = Main3Activity.class;
    postcard.setDestination(c);
    callback.onContinue(postcard);

本文标题:路由框架ARouter最全源码解析

本文链接:https://www.haomeiwen.com/subject/pzmikxtx.html