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

news/2024/7/10 20:47:24 标签: android, 开源

一、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项目

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项目

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)

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

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

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、简单的初始化

public class MyApplication extends Application {

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

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

 其他设置可以参考ARouter

  3.3、简单使用

@YmRoute(path = "/test/main")
public class MainActivity extends AppCompatActivity {

      .....
}

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

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

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


http://www.niftyadmin.cn/n/5312682.html

相关文章

工厂设计模式的思考

工厂模式对于开发者来说并不陌生&#xff0c;他利用多肽性很好的进行业务之间的解耦&#xff0c;不同的场景创建不同的实现&#xff0c;从而使得更多的关注业务实现,这种简单的实现这里不在举例。但是如果情形比较多的时候就会遇到问题&#xff0c;我们的工厂类就会产生大量的i…

zabbix的API调用

zabbix的API调用 资料参考&#xff1a;https://www.zabbix.com/documentation/4.0/zh/manual/api 看api文档就可以了&#xff0c;粘两个例子吧&#xff0c;如果配置了域名&#xff0c;可以请求域名 [rootnode ~]# vi zabbix_login.api curl -XPOST -H "Content-Type: ap…

T-SQL 函数获取数据字典

1、查询函数 CREATE FUNCTION [dbo].[get_dicName] (@ItemCode VARCHAR(50), @ItemValue VARCHAR(50)) --CREATE FUNCTION 函数名称(@参数名 参数的数据类型) RETURNS NVARCHAR(50) --返回返回值的数据类型 AS BEGINDECLARE @result_name NVARCHAR(50)SELECT@result_name …

在ASP.NET MVC中使用JQuery提供的弹出窗口(模态窗口)

在ASP.NET MVC中使用JQuery提供的弹出窗口&#xff08;模态窗口&#xff09; 原理 使用<div>图层灵活显示在浏览器的任何位置。默认情况下指定<div>不可见 引用 样式表 在JQuery的官方网站可以下载对应的css样式表。打开官网的样例页。 找到样式表引用路径 …

机器人迎来了chatGPT时刻

Figure_robot(人工智能机器人&#xff09;和 Archer Aviation&#xff08;纽约证券交易所代码&#xff1a;ACHR&#xff09;e/acc创始人Brett Adcock在1月7日宣布&#xff1a; 实验室刚刚在人工智能方面取得突破 机器人技术即将迎来它的 ChatGPT 时刻 而这一时刻就在明天 以前…

LowB三人组(冒泡排序,插入排序,选择排序)(数据结构课设篇1,python版)(排序综合)

本篇博客主要详细讲解一下LowB三人组排序&#xff0c;为什么叫LowB三人组呢&#xff1f;因为他们的时间复杂度都为O&#xff08;n^2&#xff09;。下篇博客NB三人组&#xff08;堆排序&#xff0c;归并排序&#xff0c;快速排序&#xff09;&#xff08;数据结构课设篇2&#x…

05、Kafka ------ 各个功能的作用解释(主题和分区 详解,用命令行和图形界面创建主题和查看主题)

目录 CMAK 各个功能的作用解释&#xff08;主题&#xff09;★ 主题★ 分区★ 创建主题&#xff1a;★ 列出和查看主题 CMAK 各个功能的作用解释&#xff08;主题&#xff09; ★ 主题 Kafka 主题虽然也叫 topic&#xff0c;但它和 Pub-Sub 消息模型中 topic 主题及 AMQP 的 t…

简单易懂的理解 PyTorch 中 Transformer 组件

目录 torch.nn子模块transformer详解 nn.Transformer Transformer 类描述 Transformer 类的功能和作用 Transformer 类的参数 forward 方法 参数 输出 示例代码 注意事项 nn.TransformerEncoder TransformerEncoder 类描述 TransformerEncoder 类的功能和作用 Tr…