没错,TheRouter 是我写的

本文作者介绍了TheRouter,一个用于Android模块化开发的路由库,旨在解决ARouter存在的问题,如死板的路由配置和性能问题。TheRouter支持动态页面路由、单模块自动初始化和动态化能力,简化模块化开发。文章详细阐述了TheRouter的特性和使用场景,并提供了从ARouter一键迁移的工具。
摘要由CSDN通过智能技术生成

没错,货拉拉开源的路由库 —— TheRouter 是我写的

大约在17年底到18年初的时候,我经常会讲一些当时做模块化开发的心得和踩坑历程。比如这几篇都是那时候写的:《Android 模块化平台设计》、《优雅移除模块间耦合》、《企业级 Android 模块化平台设计建议》。

但后来我慢慢不讲这些了,因为我发现做模块化,虽然我们能总结出来一套较为通用的解决方案,但很难通过几次短短的技术分享就跟别人讲清楚。并且很容易让人产生误解:我们是小公司,不需要做模块化。再加上因为当时是基于公司已有的基础建设,和制度的一些限制,并不能对外开源一套较为完善的模块化方案,开源一套完整的模块化方案这个种子就一直埋下了。

说回 TheRouter

这个名字,其实熟悉我的都知道,之前写过一个开源类 MVP 框架,叫TheMVP,基本上成为了一种将Activity看做 P 层架构的行业规范。后来被支付宝使用了,也在 设置-关于-版权信息 里面能查到,直到前几天我去反编译的时候,都还看到BaseActivity用的是我的代码。

The 代表了一种唯一性,表示有这个就够了。

TheRouter也是一样,我相信用过TheRouter以后你才会真正意识到,现在的企业级Android模块化应该怎么玩。

为什么要使用 TheRouter

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

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

不过为什么要用,说到底,还是用ARouter用的太头疼了。

  • 一个是死板,所有路由都是写死的,但凡想灵活一点,把线上Crash的页面降级成H5临时解决,都得改一大堆代码还很多限制性。
  • 另一个就是效率,不管是编译时长还是启动耗时,这俩问题都一直不解决。某个厂的开源项目都这样,作者们该晋升的晋升,该转岗的转岗,剩下的躺平不管,毕竟修修补补这事不占KPI,没法述职啊。没办法,自己来吧,谁让我们还有启动耗时指标的。
  • 再就是遇到的一个坑,在用tinker下发补丁的时候,发现同一个分支打出来的包,ARouterButterknife的产物包代码都不一样,直接增大了补丁体积。
  • 当然,还有很多差异,看这个表格吧。
<
功能 TheRouter ARouter WMRouter
Fragment路由 ✔️ ✔️ ✔️
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TheRouter 和 ARouter 都是 Android 平台上常用的路由框架,用于实现组件之间的通信和页面跳转。下面是对 TheRouter 和 ARouter 的简要比较: 1. TheRouter: - TheRouter 是一个基于 Android 平台的轻量级路由框架,用于实现模块化和解耦合的架构。 - 它提供了简单而灵活的 API,通过注解配置路由信息,并支持页面跳转和参数传递等功能。 - TheRouter 支持拦截器机制,可以在页面跳转前或后执行自定义的逻辑。 - 它具有生命周期管理功能,可以与 Activity 或 Fragment 的生命周期进行绑定。 - TheRouter 的代码库相对较小,易于集成和使用。 2. ARouter: - ARouter 是阿里巴巴开源的 Android 路由框架,具有强大的功能和广泛的社区支持。 - 它支持通过注解配置路由信息,并提供了丰富的 API,用于实现页面跳转、参数传递、拦截器等功能。 - ARouter 提供了多种路由方式,包括普通路由、自动路由和隐式路由等。 - 它支持 URL 路由,可以通过 URL 地址进行页面跳转。 - ARouter 提供了强大的参数传递功能,支持自动解析和自定义传递参数。 - 它具有强大的插件化支持,可以在编译时生成路由表,提高运行时的效率。 选择使用 TheRouter 还是 ARouter 取决于你的具体需求和偏好。如果你需要一个轻量级的库,更注重简洁的 API 和易用性,可以考虑使用 TheRouter。如果你需要更丰富的功能、强大的社区支持和插件化能力,同时不介意稍微复杂一些的集成和配置,那么 ARouter 也是一个很好的选择。 无论选择哪个框架,它们都可以帮助你实现组件之间的解耦和灵活的通信,提高项目的可维护性和扩展性。 希望对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值