TheRouter Android 模块化开发解决方案框架开源项目

我要开发同款
匿名用户2023年01月03日
110阅读
开发技术Kotlin
所属分类手机/移动开发
授权协议Apache-2.0

作品详情

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:

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

支持全局回调配置支持优先级响应与中断响应支持记录调用路径,解决调试期观察者模式无法追踪Observable的问题与其他路由对比功能TheRouterARouterWMRouterFragment路由✔️✔️✔️依赖注入✔️✔️✔️加载路由表无运行时扫描无反射运行时扫描dex(新版本改为反射)反射实例类性能损耗大运行时读文件反射实例类性能损耗中注解正则表达式✔️✖️✔️Activity指定拦截器✔️(四大拦截器可根据业务定制)✖️✔️导出路由文档✔️(路由文档支持添加注释描述)✔️✖️动态注册路由信息✔️✔️✖️支持APT/KAPT增量编译✔️✔️(开启文档生成则无法增量编译)✖️支持KSP编译✔️✖️✖️支持AGP8✔️Gradle7.3以后无法使用Gradle7.3以后无法使用plugin支持增量编译✔️✖️✖️多Path对应同一页面(低成本实现双端path统一)✔️✖️✖️远端路由表下发✔️✖️✖️支持单模块独立初始化✔️✖️✖️支持使用路由打开第三方SDK页面✔️✖️✖️对热修复支持(例如tinker)✔️(未改变的代码多次构建无变动)✖️(多次构建apt产物会发生变化,生成无意义补丁)✖️(多次构建apt产物会发生变化,生成无意义补丁)
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论