ARouter的介绍和使用_笔记

1.使用说明
官网
https://github.com/alibaba/ARouter/blob/master/README_CN.md
阿里巴巴自研路由框架,主要解决组件间、模块间的 界面跳转 问题

1.从外部URL映射到内部页面,以及参数传递与解析
2. 跨模块页面跳转,模块间解耦
3.拦截跳转过程,处理登陆、埋点等逻辑
4.跨模块API调用,通过控制反转来做组件解耦

  1. 添加依赖和配置
defaultConfig {
    
    

        minSdkVersion 24
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        /*----------添加位置----------*/
        javaCompileOptions {
    
    
            annotationProcessorOptions {
    
    
                arguments = [AROUTER_MODULE_NAME: project.getName()]
            }
        }
    }
  • 配置
dependencies {
    
    
    implementation ('com.alibaba:arouter-api:1.4.1') //ARouter依赖
    annotationProcessor 'com.alibaba:arouter-compiler:1.2.2' //ARouter依赖
    ...
}
  • 3.初始化SDK
public class App extends Application {
    
    
    @Override
    public void onCreate() {
    
    
        super.onCreate();
        ARouter.openLog();     // 打印日志
        ARouter.openDebug();   // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)
        ARouter.init(this); // 尽可能早,推荐在Application中初始化
    }
}

  • 4.添加注解-配置路径(无参)
    添加注释(Add annotations)
    目标页面添加@Route注解
    path:模板页面路径,必须以斜杠开头两级以上路径
    group:页面组,默认为module名作为命名
@Route(path = "/main/MainActivity")
public class MainActivity extends AppCompatActivity {
    
    
...
}
  • 5.跳转
//Activity跳转
ARouter.getInstance().build("/Xxx_module/XxxActivity").navigation();
//Fragment引入
Fragment fragment = (Fragment) ARouter.getInstance().build("/Xxx_module/XxxFragment").navigation();

  • 5.1跳转携带参数
  • ARouter.getInstance().build("/test/1") .withString("key3", "888") .navigation();
  • 6.ARouter 和 Calces结合使用
    特别注意事项:
app {
    
    
            applicationName '.App'
            modules ':news',':shop'
        }

6.1 把一个项目变成一个module
本身的app也要变从module
apply plugin: ‘calces.modules’

猜你喜欢

转载自blog.csdn.net/Justinbili/article/details/121768425