记录 Arouter路由 的简单使用

Arouter

一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦

1. 配置及依赖

1.1 java 版的依赖

在每个module中的build.gradle 导入依赖


api "com.alibaba:arouter-api:1.5.1" //路由库 这个在library中导入即可 其它库进行依赖
annotationProcessor "com.alibaba:arouter-compiler:1.5.1" //注解编译器 这个是每个module都需要依赖的


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

1.2 kotlin 版的依赖

在每个module中的build.gradle 导入依赖


apply plugin: 'kotlin-kapt'


api "com.alibaba:arouter-api:1.5.1" //路由库 这个在library中导入即可 其它库进行依赖
kapt "com.alibaba:arouter-compiler:1.5.1" //注解编译器 这个是每个module都需要依赖的


defaultConfig {
    kapt {
    arguments {
        arg("AROUTER_MODULE_NAME", project.getName())
    }
}
}

2. 初始化ARouter配置

2.1 在Application中配置


fun initArouter(){
 if (BuildConfig.DEBUG) {
    // 日志开启
    ARouter.openLog()
    // 调试模式开启,如果在install run模式下运行,则必须开启调试模式
    ARouter.openDebug()
 }
 ARouter.init(this)
}



//结束时释放ARouter
override fun onTerminate() {
    super.onTerminate()
    ARouter.getInstance().destroy()
}


3 路由的使用

3.1 跳转页

//无参跳转
ARouter.getInstance()
        .build("group/classpath")
        .navigation()

//有参跳转
ARouter.getInstance()
        .build("group/classpath")
        .withString("android","android")    
        .navigation()

3.2 目标页

3.2.1 在类上添加Arouter 的路径注解


//路径必须是要两级 例如 /xx/xx
 @Route(path = "group/classpath")

3.2.2 如果是带有参数的则需要 注入的初始化

// 调用 inject 方法,如果传递过来的参数含有, 使用 @Autowired 的会自动解析
ARouter.getInstance().inject(this)  //写在BaseActivity中一劳永逸 

3.2.3 获取传递过来的参数


@Autowired(name = "android")
@JvmField   //必须加上,否则无法编译  kotlin 不加会报错
var android: String= ""

4 具体使用看官网地址

https://github.com/alibaba/ARouter
或者镜像地址
https://gitee.com/mirrors/ARouter

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容