组件化ARouter

ARouter组件化流程

1.所有组件在build.gradle添加


android中default添加如下代码

ConfigjavaCompileOptions { annotationProcessorOptions { arguments = [AROUTER_MODULE_NAME: project.getName()] }

}

implementation 'com.alibaba:arouter-api:x.x.x'

annotationProcessor 'com.alibaba:arouter-compiler:x.x.x'

最新版本号详情https://github.com/alibaba/ARouter/blob/master/README_CN.md

2.主工程Application初始化

if (isDebug(this)) {

ARouter.openLog(); // 打印日志

ARouter.openDebug(); // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)

}

ARouter.init(this);

//判断当前应用是否是debug状态

public static boolean isDebug(Context context) { try { ApplicationInfo info = context.getApplicationInfo(); return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; } catch (Exception e) { return false; }}

3.Activity添加注解

@Route(path = "/test/MainActivity")

public class MainActivity extends AppCompatActivity {

//跳转方法

ARouter.getInstance().build("/mylibrary/MActivity").navigation();

}

4.成功运行后

会在build/generated/ap_generated_sources/debug/out/com.alibaba.android.arouter.routes/

生成三个文件 都implements IRouteRoot

5.原理

通过Activity引入注解,通过apt技术编译时生成文件,Application初始化调用,获取到类的对象,通过IO流生成java文件put Key Value,Router 中Map存放,Activity调用Router方法传递Key(String),启动另外模块的activity

你可能感兴趣的:(组件化ARouter)