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欢迎大家提出。++

相关推荐
莞凰8 小时前
昇腾CANN的“灵脉根基“:Runtime仓库探秘
android·人工智能·transformer
NiceCloud喜云9 小时前
Claude Files API 深入:从上传、复用到配额管理的工程化指南
android·java·数据库·人工智能·python·json·飞书
ujainu9 小时前
CANN pto-isa:虚拟指令集如何连接编译与执行
android·ascend
赏金术士10 小时前
第六章:UI组件与Material3主题
android·ui·kotlin·compose
TechMerger11 小时前
Android 17 重磅重构!服役 20 年的 MessageQueue 迎来无锁改造,卡顿大幅优化!
android·性能优化
yuhuofei202114 小时前
【Python入门】Python中字符串相关拓展
android·java·python
dalancon14 小时前
Android Input Spy Window
android
dalancon16 小时前
InputDispatcher派发事件,查找目标窗口
android
我命由我1234516 小时前
Android Framework P3 - MediaServer 进程、认识 ServiceManager 进程
android·c语言·开发语言·c++·visualstudio·visual studio·android runtime
天才少年曾牛17 小时前
Android14 新增系统服务后,应用调用出现 “hidden api” 警告的原因与解决方案
android·frameworks