# DRouter **Repository Path**: lwlstore/DRouter ## Basic Information - **Project Name**: DRouter - **Description**: No description available - **Primary Language**: Android - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-06 - **Last Updated**: 2021-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简介

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 - 适配AndroidX ### 技术特点 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](https://github.com/didi/DRouter/wiki) ``` java /** 最新版本 **/ classpath "io.github.didi:drouter-plugin-proxy:1.0.1" api "io.github.didi:drouter-api:2.0.0" ``` ## 微信交流群 WeiXin 如果二维码到期,请搜索 gwball 加作者微信(备注DRouter)入群 ## 相关文章 [滴滴开源DRouter:一款高效的Android路由框架](https://juejin.cn/post/6975818153381068831) ## License Apache-2.0 license DRouter 基于 Apache-2.0 协议进行分发和使用,更多信息参见 [协议文件](LICENSE)