ARouter路由使用与源码分析(一)

汇总篇章:

ARouter路由源码分析汇总

简介

组件化被越来越多的Android项目采用,而作为组件化的基础——路由也是重中之重,如果说组件化是肢体,那么路由就是缝合各个组件的筋脉,废话不多说,既然重中之重,那么从源码层次了解ARouter的设计,以及借鉴ARouter的设计来设计自己组件中的ARouter

源码总线

ARouter的源码分析的分析路线,就顺着使用顺序分成:

  • 第一步:添加页面注解
  • 第二步:初始化ARouter的SDK
  • 第三步:发起路由操作
  • 第四步:跳转过程监听和参数解析

,来逐步对ARouter分析

依赖这里就附上官网链接:https://github.com/alibaba/ARouter/blob/master/README_CN.md

第一步:添加页面注解
// 在支持路由的页面上添加注解(必选)
// 这里的路径需要注意的是至少需要有两级,/xx/xx
@Route(path = "/test/activity")
public class YourActivity extend Activity {
   
    ...
}

这一步,由于这步处理依赖基础配置等,故我们在第四步的参数解析里面展开处理

第二步:初始化ARouter的SDK
ARouter.init(mApplication);

我们先从ARouter的初始化方法init这个入口开始分析ARouter的分析之旅

		/**
     * Init, it must be call before used router.
     */
    public static void init(Application application) {
   
      /**
       * hasInit避免多次初始化
       */
        if (!hasInit) {
   
            logger = _ARouter.logger;
            _ARouter.logger.info(Consts.TAG, "ARouter init start.");
          	/**
             * 初始化_ARouter实际实现类
             */
            hasInit = _ARouter.init(application);

            if (hasInit) {
   
                _ARouter.afterInit();
            }

            _ARouter.logger.info(Consts.TAG, "ARouter init over.");
        }
    }

#####实现类_ARouter的init方法

protected static synchronized boolean init(Application application) {
   
        mContext = application;
        LogisticsCenter.init(mContext, executor);
        logg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值