路由框架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 不,我所指的是重新实现跳转逻辑
        fengh:如果我理解的没错滴话 应该是可以滴, 比如 在拦截器中重新设置路由
        Class c = Main3Activity.class;
        postcard.setDestination(c);
        callback.onContinue(postcard);

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

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