阿里ARouter源码分析


开源最佳实践:Android平台页面路由框架ARoute

ARoute源码分析

                

         上面2篇博客已经介绍了ARouter的原理和作用, 我补充一下自己的想法:

1、 ARouter应该是参考了SpringMVC, 通过URI字符串打开Activity/Service/Fragment。 

2、ARouter要缓存ApplicationContext或者当前Activity的上下文, 在打开Activity时必然遇到是否配置Intent.FLAG_ACTIVITY_NEW_TASK的问题, 影响正常的界面跳转逻辑;

3、ARouter使用静态变量缓存context, 如果保存的是Activity的上下文则必须要在Activity的onDestory函数里置空;

4、ARouter的核心作用就是通过URI找到类完整路径后反射并实例化

5、ARouter使用了Android的APT技术,跟常用的ButterKnife原理是一样的; ARoute会在编译时动态注入uri和类完整路径的映射关系; 是由AutowiredProcessor,InterceptorProcessor和RouteProcessor这3个类实现的。

6、初始化ARoute时, 会反射出注解生成的类并拿到URI和类路径对应关系;

以ARouter源码的demo为例:



运行时加载映射关系:



以打开Activity为例, 出入路径URI后从Warehouse.routes里取出对应的类路径, postcard.getDestination()反射出类。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值