下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】阿里路由框架ARouter源码解析之Compiler
前段时间,公司项目在做组件化重构,过程中当然会有很多痛点。组件化最重要的是根据项目和业务进行分模块,至于模块的粒度就看大家自己来把控了!这里要说的就是模块之间的数据传输问题组件化之后,各个模块不相互依赖,那么怎么相互跳转和传递数据呢?答案就是通过隐式Intent的方式来跳转和传递数据。以往的显示Intent跳转,会存在类直接依赖的问题,这样会导致耦合性非常严重;相比而言,隐式Intent则不需要类之间的直接依赖,但是会出现规则集中式管理,扩展性比较差。所以在调研期间就发现阿里开源了ARouter–路由框架。ARouter的好处我这里就不多说,大家可以去看官方文档或者去github上看README。【/alibaba/ARouter】接下来会分为若干篇blog来分析一下ARouter的源码!看了ARouter的源码就会发现,它提供了两个SDK,一个是API,一个Compiler。这里先说说Compiler层SDK。RouteProcessor路由路径处理器InterceptorProcessor拦截器处理器AutowireProcessor自动装配处理器注解处理器的处理流程(图片转自网络)实际上,CompilerSDK只是处根据扫描到的注解生成相应的映射(java)文件。最后一步通过固定包名加载映射文件是由APISDK来做的。以官方demo为例来说:上图所示就是ARouter在编译期间生成的类文件。arouter-compiler的目录结构如下:下面分别说说这三种注解处理器:用过编译时注解的朋友们都知道,注解处理器需要继承AbstractProcessor,主要涉及的函数有init(),process()这两个。RouteProcessor类的继承信息:initinit()在使用ARouter注解的时候,按照官方文档是需要在每个module里面的build.gradle中配置如下信息:配置这个属性的目的,就是为了在编译期间生成相关module下的文件和存储文件名称。process()一般在process()函数中做的操作如下:parseRoutes()这个函数的代码有点长,大家耐心看!categories()下面来看一下怎么讲路由进行分组的routeVerify()通过上面的分析可以得到以下几点:配置Route注解时,路径不允许为空且必须以“/”开头RouteProcessor注解处理器生成的文件由三种:1.ARouter$$Group$$xxx(可能有多个)
2.ARouter$$Providers$$xxx(只有一个)
3.ARouter$$Root$$xxx(只有一个)InterceptorProcessorinit()process()parseInterceptors()verify()通过上面的分析可以得到以下几点:不能设置相同优先级的拦截器,否则会抛出异常InterceptorProcessor生成的类文件格式为:ARouter$$Interceptors$$xxxAutowiredProcessorinit()process()categoriesgenerateHelper
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑工程安全生产合同模板合同模板
- 出租车租赁合同车辆型号
- 借款用途限制协议书
- 2022-2023学年四川省遂宁市射洪县青岗中学高一数学文期末试题含解析
- 湖北省孝感市中学2022-2023学年高一数学文期末试题含解析
- 山东省威海市文登铺集中学高一数学文摸底试卷含解析
- 2024年高端制造项目资金筹措计划书
- ESMO结直肠癌指南更新解读
- 2022年辽宁省大连市西岗中学高一数学文上学期期末试卷含解析
- 河南省商丘市民权实验中学2022-2023学年高一数学文测试题含解析
- 《温故而知新》课件
- 知识产权风险预警
- Unit+3+Reading+and+Thinking高中英语人教版(2019)选择性必修第四册
- 黑河市城市介绍民俗文化旅游景点推介图文课件
- 国际武术文化节系列活动策划方案文化艺术节活动策划方案
- 《草图大师》课程标准
- 《语言学纲要》学习指导书课后习题答案
- 预制箱梁首件工程施工总结
- 塞尔维亚概况
- 旅游公厕安全事故应急预案
- 2023年11月中山市烟洲中学公开招聘3名专任教师笔试历年难易错点考题荟萃附带答案详解
评论
0/150
提交评论