banner
NEWS LETTER

Arouter

Scroll down

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

使用

1. 在工程build.gradle中添加

classpath 'com.alibaba:arouter-register:1.0.2'

2. 在工程中添加arouter.gradle文件

apply plugin: 'com.alibaba.arouter'

android{

defaultConfig {
//arouter配置
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName(),AROUTER_GENERATE_DOC: “enable”]
}
}
}
}

dependencies {

annotationProcessor ‘com.alibaba:arouter-compiler:1.2.2’
api ‘com.alibaba:arouter-api:1.5.0’
}

3.在各module中的build.gradle中导入arouter.gradle

apply from: '../arouter.gradle'

4.添加注解

// 在支持路由的页面上添加注解(必选)
// 这里的路径需要注意的是至少需要有两级,/xx/xx
@Route(path = "/test/activity")
public class YourActivity extend Activity {


}

详情见官方文档

https://github.com/alibaba/ARouter/blob/master/README_CN.md

注意scheme host问题

 /**
  • example : app://account/login?a=b => /app/account/login?a=b
  • @param content
  • @return
  • 将scheme host格式转换位Arouter可使用的格式,才能路由跳转
    */
    private static String wrapPathQuery(String content){
    try {
    Uri uri = Uri.parse(content);
    if (!TextUtils.isEmpty(uri.getScheme()) && !TextUtils.isEmpty(uri.getHost())) {
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append(“/“);
    stringBuilder.append(uri.getScheme());
    stringBuilder.append(“
    /“);
    stringBuilder.append(uri.getHost());
    stringBuilder.append(“
    “);
    stringBuilder.append(uri.getPath());
    //添加query
    String splits []=content.split(“\?”);
    if(splits.length>1){
    stringBuilder.append(“?”);
    stringBuilder.append(splits[1]);
    }
    Log.e(“sssssss”,stringBuilder.toString());
    return stringBuilder.toString();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return content;

}

Arouter测试使用地址

https://github.com/loki0210/MyArouter/tree/master

其他文章
目录导航 置顶
  1. 1. 一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦
  • 使用
    1. 1. 3.在各module中的build.gradle中导入arouter.gradle
    2. 2. 4.添加注解
    3. 3. 详情见官方文档
    4. 4. 注意scheme host问题
    5. 5. Arouter测试使用地址
  • 请输入关键词进行搜索