Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jimocode/DRouter

Repository files navigation

简介


DRouter是滴滴乘客端自研的一套Android路由框架,基于平台化解耦的思想,为组件间通信服务。该项目以功能全面、易用为原则,支持各种路由场景,在页面路由、服务获取和过滤、跨进程及应用、VirtualApk插件支持等方面都能提供多样化的服务。目前已在滴滴乘客端、顺风车、单车、国际化、滴滴定制车等十多个滴滴的app内使用,得到各种场景的验证。

DRouter架构图

提供功能

  • 使用URI字符串导航Activity、Fragment、View、RouterHandler,注解支持正则表达式、占位符
  • 回调式onActivityResult
  • RouterHandler、Activity支持等待异步完成(hold),并可设置超时时间
  • RouterHandler指定执行线程
  • 注入拦截器,支持全局拦截器和局部拦截器,面向切面编程,拦截器可以使用字符串名字
  • 更为多样化的Fragment页面跳转能力
  • 使用接口或基类导航到实现类Service的Class以及实例
  • 支持Service别名以及多维过滤器查找
  • 导航Service可指定任意构造器、支持单例
  • 支持动态注册RouterHandler、Service,绑定生命周期自动解绑
  • 简单易用的跨进程执行RouterHandler、Service
  • 跨进程访问无需提前绑定、如同本地调用一样进行访问
  • 支持客户端进程和服务端进程自动重连
  • 支持VirtualApk

技术特点

  1. 插件支持增量编译、多线程扫描、以及运行时异步加载路由表,尽其所能提高效率
  2. 完整的Router功能
  3. 强大的ServiceLoader能力
  4. 简单高效的跨进程通信机制,就像调用本地方法
  5. 框架内部尽可能减少使用反射,提升性能
  6. 动态下载与api匹配的plugin,无需升级plugin版本
  7. 无需手动添加混淆规则

核心模块

模块 功能
Router Native和H5导航Activity、Fragment、View、RouterHandler,支持切入拦截器
Service 基于spi通过接口的形式查找到实现类,支持过滤和优先级配置
Remote 跨进程访问Router、Service
Page 支持单Page、栈Page、ViewPager三种形式的Fragment加载

使用文档

接入方式及文档请移步 Wiki

/** 最新版本 因jcenter关闭已迁移到maven **/
classpath "io.github.didi:drouter-plugin-proxy:1.0.0"
api "io.github.didi:drouter-api:1.0.7"
/** 旧的jcenter版本 无法上传更新 **/
classpath "com.didi.drouter:drouter-plugin-proxy:1.0.0"
api "com.didi.drouter:drouter-api:1.0.4"

微信交流群

WeiXin

如果二维码到期,请搜索 gwball 加作者微信(备注DRouter)入群

相关文章

滴滴开源DRouter:一款高效的Android路由框架

License

Apache-2.0 license

DRouter 基于 Apache-2.0 协议进行分发和使用,更多信息参见 协议文件

About

Android Router Framework

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 91.6%
  • Groovy 7.9%
  • AIDL 0.5%

AltStyle によって変換されたページ (->オリジナル) /