Android开发 基于ARouter开源的路由框架的YmRouter

一、ARouter的简介

ARouter是一个用于Android的路由框架,它能够帮助开发者实现组件之间的通信和页面跳转。

ARouter的核心原理是通过注解来标记和生成路由映射表。开发者只需要在需要跳转的页面上添加注解,然后在代码中通过路由表找到对应的页面进行跳转。

ARouter提供了丰富的功能和灵活的配置,可以支持参数传递、拦截器、页面拦截、自动注入等功能。开发者可以根据自己的需求进行配置和使用。

除了页面跳转,ARouter还提供了一些扩展功能,例如服务发现、事件通知、模块化开发等,可以帮助开发者更好地组织和管理代码。

ARouter的优点是性能高效、配置灵活,可以帮助开发者简化代码、提高开发效率。同时,它也具有良好的兼容性,可以兼容大部分Android项目。

总的来说,ARouter是一款非常好用的Android路由框架,可以帮助开发者简化组件之间的通信和页面跳转,提高开发效率。

二,集成

1、添加jitpack 仓库

Android Gradle Plugin 为 v7.1.0 以下版本:进入项目根目录,打开 "build.gradle" 文件,在 "allprojects" 中加入如下代码:

...

allprojects {

repositories {

maven { url 'https://jitpack.io' }

mavenCentral()

google()

}

}

当您的 Android Gradle Plugin 为 v7.1.0 或以上版本:进入项目根目录,打开 "settings.gradle" 文件,在 "dependencyResolutionManagement" 中加入如下代码:

...

dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)

repositories {

maven { url 'https://jitpack.io' }

mavenCentral()

google()

}

}

2、依赖YmRouter库

单model项目

纯Java项目

Groovy 复制代码
defaultConfig {
         ......
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = [YMROUTER_MODULE_NAME: project.getName()]
            }
        }
    }

dependencies {
    ......
    implementation 'com.gitee.ym521.ymrouter:ymrouter-api:1.0.5'
    annotationProcessor 'com.gitee.ym521.ymrouter:ymrouter-compiler:1.0.5'
}

kotlin项目

Groovy 复制代码
plugins {
   ......
    id "org.jetbrains.kotlin.kapt"
}

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

dependencies {
    ......
    implementation 'com.gitee.ym521.ymrouter:ymrouter-api:1.0.5'
    kapt 'com.gitee.ym521.ymrouter:ymrouter-compiler:1.0.5'
}
多model项目

以下以纯Java项目为例

公共模块(common)

Groovy 复制代码
dependencies {
    ......
    api 'com.gitee.ym521.ymrouter:ymrouter-api:1.0.5'
    
}

其他业务模块(含有activity的)

Groovy 复制代码
defaultConfig {
         ......
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = [YMROUTER_MODULE_NAME: project.getName()]
            }
        }
    }

dependencies {
    ......
    annotationProcessor 'com.gitee.ym521.ymrouter:ymrouter-compiler:1.0.5'
}

注意:一定要记得添加

defaultConfig {

......

javaCompileOptions {

annotationProcessorOptions {

arguments = YMROUTER_MODULE_NAME: project.getName()

}

}

}

三、使用和ARouter的小区别

3.1、和ARouter的区别

1、注解由ARouter的@Router 改为@YmRouter

2、去除了SDK v4包的Fragment

3、去除了v4包更换AndroidX 包 版本为1.5.0

4、更新了其他原ARouter中的旧依赖

3.2、简单的初始化

java 复制代码
public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        YmRouter.init(this);
    }
}

记得在AndroidManifest.xml 设置<pplicationd ... />的name属性。

其他设置可以参考ARouter

3.3、简单使用

java 复制代码
@YmRoute(path = "/test/main")
public class MainActivity extends AppCompatActivity {

      .....
}

 YmRouter.getInstance()
.build("/test/main")
.navigation();

拦截器等其他使用可以参考ARouter

++希望您给博主一些鼓励(点赞、关注、收藏),如果++ ++有BUG欢迎大家提出。++

相关推荐
事圆则缓9 分钟前
Kotlin 异步与并发:从一次搜索请求走到状态流
android·开发语言·kotlin
帅得不敢出门1 小时前
Android Framework定制卸载确认窗口
android
鶴哥只手遮天2 小时前
Spring Boot 4.1.1 深度源码解析-第 29 章 · 测试体系:`@SpringBootTest`、切片测试、Testcontainers
java·后端·开源
老牛日常随笔2 小时前
Meta 开源 8160 亿参数模型,官方给的方案是两台 Mac Studio
macos·开源
miofly2 小时前
OpenCode控制台密钥泄露事件:1.4%用户受影响,多方说法现分歧
开源·github
Android-Flutter2 小时前
Compose 什么叫重组?怎么样触发重组?
android·compose
miofly2 小时前
GitHub 周榜趋势速报 | 2026-10-18
开源·github
硫酸锌012 小时前
安卓手机连接Windows电脑后通过DHCP服务为手机分配IP地址
android·windows·计算机网络
骑着蜗牛撵大象3272 小时前
设备监控数据存与查:Spring Boot 接入 TimescaleDB 超表的完整落地
android·spring boot·后端·springboot·时序数据库·es·设备监控
鶴哥只手遮天2 小时前
Spring Boot 4.1.1 深度源码解析-第 15 章 · 条件注解体系:全部 `@ConditionalOnXxx` 的实现原理
java·后端·开源