美文网首页
学习笔记--路由组件ARouter

学习笔记--路由组件ARouter

作者: RexHuang | 来源:发表于2020-09-23 16:08 被阅读0次

    ARouter介绍

    ARouter介绍
    • AutoWired注解:标记需要自动注入的参数
    • Route注解:标记页面为路由节点
    • Interceptor注解:标记一个类为拦截器,在路由过程中实现按需拦截
    • IProvider接口:配合Route注解暴露服务供其他模块调用。实现跨模块调用的能力
    • RouteProcessor:编译时扫描被Route注解标记的类,将路由信息收集起来,按照模块和路由组的划分写入相应的文件中
    • AutowiredProcessor:编译时扫描被AutoWired注解标记的字段和所在的类,将字段和类一一对应的收集起来,然后写入文件。该文件就是在运行阶段拿来实现参数自动注入工作的类。
    • InterceptorProcessor:编译时扫描被Interceptor注解标记的类,将模块下所有拦截器的类相关信息收集起来,写入文件

    ARouter基本用法

    依赖引入与配置和基本用法

    ARouter编译时原理分析

    ARouter编译原理
    • RouteProcessor扫描当前模块下标记了@Route注解的类,识别注解标记类的类型是什么(如Activity,Broadcast,Provider,Service, ContentProvider,Fragment),将类的关键信息包装成RouteMeta对象,并且按照路由组的概念分别存储到groupMap的集合当中,最后遍历groupMap生成当前模块下的路由组文件(ARouter$$Group$$groupName),当前模块下路由的根节点源文件(ARouter$$Root$$app),当前模块下对外暴露服务的Provider源文件(ARouter$$Providers$$app),如果开启了生成文档的开关,还会生成当前模块的路由Json描述文件

    • InterceptorProcessor扫描当前模块下标记了@Interceptor注解的类,然后把拦截器的优先级、名称、class对象信息写入ARouter$$Interceptors$$app这个文件

    • AutowiredProcessorr扫描当前模块下标记了@AutoWired注解的所有的字段,然后解析每个字段的名称和数据类型,生成能够从Intent读取参数并且给该字段赋值的源文件。

    JavaPoet

    JavaPoet的使用和介绍

    ARouter初始化流程

    ARouter初始化流程

    ARouter路由流程

    ARouter路由流程

    相关文章

      网友评论

          本文标题:学习笔记--路由组件ARouter

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