TheRouter 一键迁移工具


TheRouter提供了图形化界面的迁移工具,可以一键从其他路由迁移到TheRouter
全新迁移工具已集成到 AndroidStudio 开发插件中,可直接在AS插件市场下载,相关介绍请访问: https://therouter.cn/docs/2022/09/29/01

旧版本图形界面可使用:1.1.1 (2022-10-09更新)

注意事项

  1. issue中有用户反馈:使用Windows系统迁移时,会发生乱码情况。犹豫迁移工具对文件的读写均采用UTF-8编码,所以建议在迁移之前先将工程编码设置为UTF-8。Android Studio支持修改工程编码:Setting -> Editor -> File Encodings 修改Global EncodingProject EncodingUTF-8

需要手动修改的部分

  1. ARouter 的 Provider.init 部分,建议改为懒加载方式,在服务方法被调用时自己主动调用init方法。

  2. 如果使用了 ARouter 拦截器部分,需要自己手动处理拦截器的逻辑,ARouter的拦截器全部可以用 TheRouter 的拦截器替换,具体逻辑请参考:TheRouter页面跳转:【第三部分】自定义处理器。

  3. ARouter 封装了大量 Bundle 传参的操作,例如withBooleanArray()这种。我们认为这样的封装是冗余的。如果你使用到了对应方法,在TheRouter内可以直接通过对Bundle对象调用对应的方法。例如:

     // ARouter 
     ARouter.getInstance()
         .build(path)
         .withByteArray(key, value)
         .withStringArrayList(key, value as ArrayList<String>)
         .navigation()
    	
     // TheRouter
     TheRouter.build("")
         .fillParams { bundle ->
             bundle.putByteArray(key, value)
             bundle.putStringArrayList(key, value)
         }.navigation()
    
  4. with(bundle)的实现区别。在 ARouter 中,with 操作是一个集合性操作,如果此时 bundle 中的 key 与 withString(key, value) 中的 key 重复,会发生后者覆盖前者的情况。
    TheRouter中,with 操作是传入一个额外的对象,不会发生覆盖,但在落地页获取时需要通过 @Autowired 注解获取。
    如果你希望with(bundle)能直接通过intent获取,可以使用如下代码。

     ARouter.build().with(yourBundle).navigate()
    	
     TheRouter.build("")
         .fillParams { bundle ->
             bundle.putAll(yourBundle)
         }.navigation()
    

》》》

暂未发现其他需要手动修改部分

迁移建议

为防止在迁移完成后,写代码过程中,导包引用错误的情况。
建议手动检查一遍ARouter的引用是否全部删除,并在各模块build.gradle中配置如下代码,过滤掉相关引用。
这样如果发生引用错误问题,会在编译期报错,提前发现问题。

configurations {
    all*.exclude group: 'com.alibaba', module: 'arouter-api'
    all*.exclude group: 'com.alibaba', module: 'arouter-annotation'
}

相关推荐:

Android Studio 插件,开发必备工具Android Studio 插件,开发必备工具

开发了一个用于自动跳转的辅助插件,可以直接从 路由 的声明处查看到哪些地方使用了本次跳转。 ## 下载插件 1. 打开 Android ...

2 mins
获取和使用最新版的 TheRouter获取和使用最新版的 TheRouter

TheRouter 的版本规划分为三种,分别是 `稳定版`、`预览版`(含 beta 版)、`公测版`。 ### 稳定版 稳定版总是在`main`分支...

2 mins
Android 动态路由框架:TheRouter 开源Android 动态路由框架:TheRouter 开源

TheRouter 是一个 Kotlin 编写,用于 Android 模块化开发的一整套解决方案框架。 Github 项目地址与使用文档详见 https:...

32 mins