didi / DRouter

Android Router Framework
Apache License 2.0
743 stars 93 forks source link
android router

简介


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

DRouter架构图

提供功能

技术特点

  1. 支持增量编译,多线程扫描,提升编译效率
  2. 初始化点对点加载路由表,无反射和遍历,异步加载,提升启动性能
  3. 完整的Router功能
  4. 强大的ServiceLoader实例化和过滤能力
  5. 易用高效的跨进程通信机制,同步执行,就像调用本地方法
  6. 框架内部尽可能规避反射,提升运行时性能
  7. 动态下载与api匹配的plugin,无需升级plugin版本
  8. 无需手动添加混淆规则

核心模块

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

使用文档

接入方式及文档请移步 Wiki

/** 插件 **/
classpath "io.github.didi:drouter-plugin:1.3.5"      // agp 1.x - 7.x
classpath "io.github.didi:drouter-plugin:1.4.0"      // agp 8.x以上

/** 依赖库 **/
api "io.github.didi:drouter-api:2.4.6"           // Router、Service
api "io.github.didi:drouter-api-page:1.0.0"      // Page
api "io.github.didi:drouter-api-process:1.0.0"   // Process

微信交流群

微信群二维码链接

或微信搜索作者 gwball (备注DRouter)入群

相关文章

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

License

Apache-2.0 license

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