Rabbits - 用于 Android 项目的路由组件


Apache
跨平台
Java

软件简介

什么是Rabbits?

Rabbits是用于Android项目的路由组件。具有统一管理路由、支持动态更新等方便的特性。因为经常用到「跳转」这个词,想一想兔子经常和跳这个动作联系起来,所以这个项目就叫Rabbits了。

什么是路由?

如果不接触Web开发,通常看到路由应该是“路由器”。和网络中的路由类似,Web和App中的路由也是为了确定某种路径,启动某个页面或者组件。在Android中,路由一般都是完成url或者path到某个页面(通常是Activity)的映射。

[](https://blog.kyleduo.com/2017/05/19/rabbits/#为什么需要路由?

“为什么需要路由?”)为什么需要路由?

startActivity足够简单和直观,那么为什么要用路由呢?用一句话来概括就是路由可以统一App内的所有页面导航,原生页面或者WebView内的网页。如果你的项目涉及到用WebView展示某些内容,比如新闻、论坛等App,使用路由即可统一这些页面间的导航,业务逻辑层面完全不需要关心下一个页面的实现。
路由的存在使得在WebView中跳转到App原生页面变得异常简单,只需要在WebViewClient的回调中加入几行代码。
支持更新的路由,更使得A/B Test和Fallback到Wap页面变得轻而易举,仅仅需要下发路由表。

[](https://blog.kyleduo.com/2017/05/19/rabbits/#为什么需要Rabbits?

“为什么需要Rabbits?”)为什么需要Rabbits?

去年下半年开始,出现了很多个路由组件。Rabbits和他们相比又有那些不同呢?

编译时注解

Rabbits使用编译时注解,避免了运行时注解的性能损耗,同时不要求对被注解的类进行混淆排除,一定程度上还加强了安全性。

统一管理路由表

Rabbits的路由表使用json进行统一管理,避免url注解散落到各处的尴尬。Activity和Fragment类的注解仅标识该页面的page
name,一旦设置不需要改动,不易出错。
Rabbits还会根据路由表生成辅助类管理url常量,绝大多数情况,项目中不会出现手写url和path的情况,减少typo的可能性。

动态更新

Rabbits提供动态更新的能力,一旦更新,立即生效;同时会将最新的路由表缓存到文件,下次冷启动将直接加载。

[](https://blog.kyleduo.com/2017/05/19/rabbits/#Fragment支持

“Fragment支持”)Fragment支持

Rabbits支持对Fragment进行注解,经过一些设置之后,可以实现在Fragment间完成类似Activity的导航效果。

总结起来,Rabbits 配置简单,上手快,侵入性小,扩展丰富 ,非常值得尝试。