


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】阿里路由框架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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西省抚州市乐安县重点达标名校2025年初三阶段性测试(五)数学试题试卷含解析
- 上海杉达学院《国际经济学》2023-2024学年第二学期期末试卷
- 2025年网络营销专业技能考试试题及答案
- 2025年信息系统项目管理师资格考试试题及答案
- 台州市临海市2025年数学三下期末综合测试模拟试题含解析
- 上海民远职业技术学院《唐诗选读》2023-2024学年第二学期期末试卷
- 未来医疗行业发展趋势与相关护理考试试题及答案
- 泰山护理职业学院《水利工程专业导论》2023-2024学年第二学期期末试卷
- 吉林省长春市朝阳区2024-2025学年联考第一次诊断性考试化学试题含解析
- 江苏省常州市武进区礼嘉中学2024-2025学年高三4月高考二模英语试题含解析
- 《福建省城镇道路清扫保洁作业指导价》
- 第三类医疗器械岗前培训
- GB/T 23444-2024金属及金属复合材料吊顶板
- 2024用电信息采集系统技术规范第2部分:集中器和采集器
- 代理招商合作合同样本
- 2023年非车险核保考试真题模拟汇编(共396题)
- 《阻燃材料与技术》课件 第1讲 绪论
- 化工厂设备安装施工方案
- 人作与天开-中国古典园林艺术 课件-2024-2025学年高中美术人美版(2019)美术鉴赏
- 2024年重庆市中考化学试题(A卷)含答案
- 你比我猜题库课件
评论
0/150
提交评论