TheRouter 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
TheRouter 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
TheRouter 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-2.0
开发语言 Kotlin Java
操作系统 跨平台
软件类型 开源软件
所属分类 手机/移动开发
开源组织
地区 国产
适用人群 未知
收录时间 2023-01-03

软件简介

TheRouter 是一个 Kotlin 编写,由货拉拉技术开源的,用于 Android 模块化开发的一整套解决方案框架。支持KSP、支持AGP8,不仅能对常规的模块依赖解耦、页面跳转,同时提供了模块化过程中常见问题的解决办法。
Github 项目地址与使用文档详见 https://github.com/HuolalaTech/hll-wp-therouter-android

为什么要使用 TheRouter


路由是现如今移动端开发中必不可少的功能,尤其是企业级APP,可以用于将Intent页面跳转的强依赖关系解耦,同时减少跨团队开发的互相依赖问题。

对于大型 APP 开发,基本都会选用模块化(或组件化)方式开发,对于模块间解耦要求更高。

TheRouter 是一整套完全面向模块化开发的解决方案,不仅能支持常规的模块依赖解耦、页面跳转,同时提供了模块化过程中常见问题的解决办法。例如:完美解决了模块化开发后由于组件内无法获取 Application 生命周期与业务流程,造成每次初始化与关联依赖调用都需要跨模块修改代码的问题。

TheRouter 核心功能具备如下能力:

Navigator:

  • 支持 Activity  Fragment
  • 支持Path与页面多对一关系或一对一关系,可用于解决多端path统一问题
  • 页面Path支持正则表达式声明
  • 支持 json 格式路由表导出
  • 支持动态下发 json 路由表,降级任意页面为H5
  • 支持任意object跨模块传递(无需序列化,且能保证对象类型)
  • 支持页面跳转拦截处理
  • 支持自定义页面参数解析方式(例如将json解析为对象)
  • 支持使用路由跳转到第三方 SDK 中的Activity(Fragment)

ServiceProvider:

  • 支持跨模块依赖注入
  • 支持自定义注入项的创建规则,依赖注入可自定义参数
  • 支持自定义服务拦截,单模块mock调试
  • 支持注入对象缓存,多次注入 只会new一次对象

FlowTaskExecutor:

  • 支持单模块独立初始化
  • 支持懒加载初始化
  • 独立初始化允许多任务依赖(参考Gradle Task)
  • 支持编译期循环引用检测
  • 支持自定义业务初始化时机,可以用于解决隐私合规问题

ActionManager:

  • 支持全局回调配置
  • 支持优先级响应与中断响应
  • 支持记录调用路径,解决调试期观察者模式无法追踪Observable的问题

与其他路由对比

功能 TheRouter ARouter WMRouter
Fragment路由 ✔️ ✔️ ✔️
依赖注入 ✔️ ✔️ ✔️
加载路由表 无运行时扫描
无反射
运行时扫描dex(新版本改为反射)
反射实例类
性能损耗大
运行时读文件
反射实例类
性能损耗中
注解正则表达式 ✔️ ✖️ ✔️
Activity指定拦截器 ✔️(四大拦截器可根据业务定制) ✖️ ✔️
导出路由文档 ✔️(路由文档支持添加注释描述) ✔️ ✖️
动态注册路由信息 ✔️ ✔️ ✖️
支持 APT/KAPT 增量编译 ✔️ ✔️(开启文档生成则无法增量编译) ✖️
支持 KSP 编译 ✔️ ✖️ ✖️
支持 AGP8 ✔️ Gradle 7.3 以后无法使用 Gradle 7.3 以后无法使用
plugin支持增量编译 ✔️ ✖️ ✖️
多 Path 对应同一页面(低成本实现双端path统一) ✔️ ✖️ ✖️
远端路由表下发 ✔️ ✖️ ✖️
支持单模块独立初始化 ✔️ ✖️ ✖️
支持使用路由打开第三方 SDK 页面 ✔️ ✖️ ✖️
对热修复支持(例如tinker) ✔️(未改变的代码多次构建无变动) ✖️(多次构建apt产物会发生变化,生成无意义补丁) ✖️(多次构建apt产物会发生变化,生成无意义补丁)
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣
05/15 11:13

TheRouter 1.1.3 版本发布,业界最新移动端路由框架

TheRouter 是由 Kotlin 编写,由货拉拉技术开源的,用于 Android 模块化开发的一整套解决方案框架。支持 KSP、支持 AGP8,不仅能对常规的模块依赖解耦、页面跳转,同时提供了模块化过程中常见问题的解决办法。例如:完美解决了模块化开发后由于组件内无法获取 Application 生命周期与业务流程,造成每次初始化与关联依赖调用都需要跨模块修改代码的问题,是目前业界最领先的移动端路由框架。 更多介绍,请见官网:https://thero...

1
4
01/28 17:01

TheRouter 1.1.2 版本发布,业界领先移动端路由框架

TheRouter 是由 Kotlin 编写,由货拉拉技术开源的,用于 Android 模块化开发的一整套解决方案框架。支持 KSP、支持 AGP8,不仅能对常规的模块依赖解耦、页面跳转,同时提供了模块化过程中常见问题的解决办法。例如:完美解决了模块化开发后由于组件内无法获取 Application 生命周期与业务流程,造成每次初始化与关联依赖调用都需要跨模块修改代码的问题,是目前业界最领先的移动端路由框架。 更多介绍,请见官网:https://thero...

2
6
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
7 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部