_ARouter.logger.info(Consts.TAG, “ARouter init over.”);
}
}
protected static synchronized boolean init(Application application) {
mContext = application;
LogisticsCenter.init(mContext, executor);
logger.info(Consts.TAG, “ARouter init success!”);
hasInit = true;
mHandler = new Handler(Looper.getMainLooper());
return true;
}
LogisticsCenter.init
private static void loadRouterMap() {
registerByPlugin = false;
// auto generate register code by gradle plugin: arouter-auto-register
// looks like below:
// registerRouteRoot(new ARouter…Root…modulejava());
// registerRouteRoot(new ARouter…Root…modulekotlin());
}
源码中是上面这样的,之前为了收集路由信息,程序启动后会扫描dex文件,不过这样会影响启动速度,不过后来经过 arouter-register 插件的插桩的处理,会扫描 jar 包中满足条件的类,收集后就会变成下面这样
private static void loadRouterMap() {
registerByPlugin = false;
register(“com.alibaba.android.arouter.routes.ARouter R o o t Root Rootmodulejava”);
register(“com.alibaba.android.arouter.r
outes.ARouter R o o t Root Rootarouterapi”);
register(“com.alibaba.android.arouter.routes.ARouter I n t e r c e p t o r s Interceptors Interceptorsmodulejava”);
register(“com.alibaba.android.arouter.routes.ARouter