android arouter加跳转动画,仿写Arouter框架实现Activity的跳转

本文详细介绍了如何仿写ARouter框架,包括annotation、compiler和core三个模块,实现Android Activity的跳转。讲解了注解声明、编译时处理、核心跳转逻辑,并给出了跳转示例代码,最后展示了编译生成的Java文件目录结构。
摘要由CSDN通过智能技术生成

Arouter 框架是主要由三个模块组成,annotation,compiler,core.

annotation :自定义注解,用来声明需要路由的页面(Java Library)

compiler :注解解析,在编译时根据自定义注解生成注册路由表的java类(Java Library)。

core : 实现路由跳转功能,供Android调用(Android Library)

先上工程结构图

bf382dec9844b83c32d30b08dc2193d0.png

一、annotation模块

新建一个文件,编写一个注解,声明路由路径

20ef118a837bd76f7b27e3dd1e99e2e8.png

RouteMeta保存路由信息,通过解析注解获取。

650d232b40c03eb774d61856f217a65f.png

二、compiler模块

首先导入依赖的第三方库,compiler模块使用javax的Processor类来解析注解,auto-service自动编译Processor类,使用javapoet库生成java类。

3d445b586610554e3bcfc19c0843756e.png

新建RouterProcessor继承AbstractProcessor类,添加如下注解

f8d048a0ffbbe1a23cbe6d624497cda0.png

初始化RouterProcessor,在process方法中遍历Route注解的节点,如果不为null,进行解析

ba09f140f07b1f76afc6c475e92f13a5.png

获取Activity类的节点信息,然后循环,判断是Activity类型的节点,新建RouteMeta对象保存节点信息。然后调用categories()验证节点的路由地址是否符合规则,再根据分组名保存节点到groupMap中

990d88ba8347773313d6f21a232319ea.png

遍历groupMap中的节点信息,使用javapoet工具生成一个继承IRouteGroup接口的java类,用来保存每个分组的路由信息。叫分组信息类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值