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

这篇具有很好参考价值的文章主要介绍了Android开发 基于ARouter开源的路由框架的YmRouter。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、ARouter的简介

二,集成

 1、添加jitpack 仓库

2、依赖YmRouter库

单model项目

多model项目

三、使用和ARouter的小区别

3.1、和ARouter的区别

3.2、简单的初始化

 3.3、简单使用

3.4 携带值跳转Activity


一、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.6'
    annotationProcessor 'com.gitee.ym521.ymrouter:ymrouter-compiler:1.0.6'
}

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.6'
    kapt 'com.gitee.ym521.ymrouter:ymrouter-compiler:1.0.6'
}
多model项目

以下以纯Java项目为例

公共模块(common)

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

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

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

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

 注意:一定要记得添加

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

3.4 携带值跳转Activity

在自己的BaseActivity的onCreate()中 使用YmRouter.getInstance().inject(this) 不然无法注解Autowired无法生效

java

//携带的数据  
@Autowired(name = "data")
String data;

kotlin

//携带的数据
@Autowired(name="data")
@JvmField
var data: String? = null

 

希望您给博主一些鼓励(点赞、关注、收藏),如果有BUG欢迎大家提出。 文章来源地址https://www.toymoban.com/news/detail-784217.html

到了这里,关于Android开发 基于ARouter开源的路由框架的YmRouter的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Android】ARouter新手快速入门

    什么是ARouter ARouter是阿里巴巴推出的一款android界面路由框架 ARouter解决的核心问题是什么 在大型的模块化项目中,一个模块,往往无法直接访问到其它模块中的类,必须通过其它方式来完成模块间的调用 ARouter的核心功能在于,它以路径访问的方式,来取代类直接访问的方式

    2024年02月10日
    浏览(32)
  • Android学习之路(22) ARouter原理解析

    首先我们从命名来看:ARouter翻译过来就是 一个路由器 。 官方定义 : 一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦 那么什么是路由呢? 简单理解就是: 一个公共平台转发系统 工作方式: 1. 注册服务 :将我们需要对外暴露的页面或者服

    2024年01月22日
    浏览(42)
  • 基于阿里云物联网平台的Android物联网软件框架(快速开发)

    提示:该工程是连接阿里云物联网平台的模板代码,将MQTT连接、JSON数据的订阅发布等操作封装,并且能够迅速将获取到的数据显示到手机界面上。使用了Servier进行网络连接的逻辑操作,并且使用自定义控件,绑定对用标识符的数据对象,实现了数据自动实时更新等操作,并

    2024年02月06日
    浏览(54)
  • 各种Android ui 开源框架

    MaterialDesignExample - 本APP用来演示Material Design控件的使用。 https://www.aswifter.com/2015/07/02/Material-Design-Example-5/ , 使用说明。 InstaMaterial - InstalMaterial 项目(非常多的UI样式:ViewAnimator、RecyclerView、拍照), InstalMaterial学习笔记之Reveal效果。 NavigationDrawer-MaterialDesign - 一个Materia

    2024年04月28日
    浏览(42)
  • 开源 _ 新一代Android 性能监控框架Rabbit

    应用启动耗时统计 在对应用主页进行配置后, rabbit 可以统计出如下图所示的冷启动耗时: 页面渲染与网络请求耗时统计 与网络请求耗时结合后, rabbit 可以统计出一个页面的完全渲染耗时。这里的完全渲染耗时是指: 从页面create到页面拿到请求结果并刷新页面所用的时间 。核

    2024年04月13日
    浏览(40)
  • Node框架 【Koa】开发框架、路由

    2023年05月13日
    浏览(57)
  • 【Android -- 开源库】推荐一个全局悬浮窗的框架(FloatWindow)

    在日常开发中,我们可能需要实现全局悬浮窗的需求: 点击悬浮窗图标可以跳转到一个固定的 Activity A; 用户在 app 内的任一 Activity 里都能看到悬浮窗(除了 Activity A) 悬浮窗可以关闭,可以拖动,拖动过程中松手可以自动吸附到屏幕边缘。 支持拖动,提供自动贴边等动画 内

    2024年02月15日
    浏览(48)
  • 【开源】SpringBoot框架开发网上药店系统

    基于JAVA+Vue+SpringBoot+MySQL的网上药店系统,包含了药品类型模块、药品档案模块、药品收藏模块、药品订单模块、药品资讯模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,网上药店系统基于角色

    2024年03月15日
    浏览(58)
  • 【开源】SpringBoot框架开发房屋出售出租系统

    基于JAVA+Vue+SpringBoot+MySQL的房屋出售出租系统包含了房屋销售模块、房屋出租模块、预定意向模块、交易订单模块、图表分析模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,房屋出售出租系统基

    2024年03月25日
    浏览(53)
  • 【开源】SpringBoot框架开发农家乐订餐系统

    基于JAVA+Vue+SpringBoot+MySQL的农家乐订餐系统,包含了菜品类型模块、菜品档案模块、菜品收藏模块、菜品订餐模块、菜品资讯模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,农家乐订餐系统基于

    2024年02月20日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包