ARouter解析之基本使用

ARouter是阿里巴巴开源的Android平台中对页面、服务提供路由功能的中间件,提倡的是简单且够用。

Github:https://github.com/alibaba/ARouter

Google提供的原声路由主要是通过Intent,可以分成显示和隐式两种。显示的方案会导致类之间的直接依赖问题,耦合严重;隐式Intent需要的配置清单中统一声明,首先有个暴露的问题,另外在多模块开发中协作也比较困难。只要调用startActivity后面的环节我们就无法控制了,在出现错误时无能为力,而ARouter可以在跳转过程中进行拦截,出现错误时可以实现降级策略。

ARouter的优势

  • 直接解析URL路由,解析参数并赋值
  • 支持多模块项目
  • 支持InstantRun
  • 允许自定义拦截器
  • ARouter可以提供IoC容器
  • 映射关系自动注册
  • 灵活的降级策略

ARouter配置

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

dependencies {
    implementation 'com.alibaba:arouter-api:1.4.0'
    annotationProcessor 'com.alibaba:arouter-compiler:1.2.1'
}

ARouter初始化

// 打开日志并打印堆栈
ARouter.openLog();
// 调试模式不是必须开启,但是为了防止有用户开启了InstantRun,但是忘了开调试模式,导致无法使用ARouter
// 如果使用了InstantRun,必须在初始化之前开启调试模式,但是上线前需要关闭
// InstantRun仅用于开发阶段,线上开启调试模式有安全风险,可以使用BuildConfig.DEBUG来区分环境
ARouter.openDebug();
// 初始化ARouter
ARouter.init(getApplication());
// 关闭ARouter
// ARouter.getInstance().destroy();

Activity页面跳转及传参

ARouter.getInstance()
        .build("/activity/test")
        .withString("name", "Joe.Ye")
        .withInt("age", 25)
        .navigation();

startActivityForResult

ARouter.getInstance()
        .build("/activity/test")
        .withString("name", "Joe.Ye")
        .withInt("age", 25)
        .navigation(this, REQUEST_CODE);

跳转动画

(1)旧版动画

ARouter.getInstance()
        .build("/activity/test")
        .withTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom)
        .navigation(this);

(2)新版动画

if (Build.VERSION.SDK_INT >= 16) {
    ActivityOptionsCompat compat = ActivityOptionsCompat.
            makeScaleUpAnimation(v, v.getWidth() / 2, v.getHeight() / 2, 0, 0);

    ARouter.getInstance()
            .build("/activity/test")
            .withOptionsCompat(compat)
            .navigation();
} else {
    Toast.makeText(this, "API < 16,不支持新版本动画", Toast.LENGTH_SHORT).show();
}

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/18/basic-usage-of-arouter/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
ARouter解析之基本使用
ARouter是阿里巴巴开源的Android平台中对页面、服务提供路由功能的中间件,提倡的是简单且够用。 Github:https://github.com/alibaba/ARouter Google提供的……
<<上一篇
下一篇>>
文章目录
关闭
目 录