Rabbits是用于Android项目的路由组件。具有统一管理路由、支持动态更新等方便的特性。因为经常用到「跳转」这个词,想一想兔子经常和跳这个动作联系起来,所以这个项目就叫Rabbits了。
如果不接触Web开发,通常看到路由应该是“路由器”。和网络中的路由类似,Web和App中的路由也是为了确定某种路径,启动某个页面或者组件。在Android中,路由一般都是完成url或者path到某个页面(通常是Activity)的映射。
“为什么需要路由?”)为什么需要路由?
startActivity足够简单和直观,那么为什么要用路由呢?用一句话来概括就是路由可以统一App内的所有页面导航,原生页面或者WebView内的网页。如果你的项目涉及到用WebView展示某些内容,比如新闻、论坛等App,使用路由即可统一这些页面间的导航,业务逻辑层面完全不需要关心下一个页面的实现。 路由的存在使得在WebView中跳转到App原生页面变得异常简单,只需要在WebViewClient的回调中加入几行代码。 支持更新的路由,更使得A/B Test和Fallback到Wap页面变得轻而易举,仅仅需要下发路由表。
“为什么需要Rabbits?”)为什么需要Rabbits?
去年下半年开始,出现了很多个路由组件。Rabbits和他们相比又有那些不同呢?
Rabbits使用编译时注解,避免了运行时注解的性能损耗,同时不要求对被注解的类进行混淆排除,一定程度上还加强了安全性。
Rabbits的路由表使用json进行统一管理,避免url注解散落到各处的尴尬。Activity和Fragment类的注解仅标识该页面的page name,一旦设置不需要改动,不易出错。 Rabbits还会根据路由表生成辅助类管理url常量,绝大多数情况,项目中不会出现手写url和path的情况,减少typo的可能性。
Rabbits提供动态更新的能力,一旦更新,立即生效;同时会将最新的路由表缓存到文件,下次冷启动将直接加载。
“Fragment支持”)Fragment支持
Rabbits支持对Fragment进行注解,经过一些设置之后,可以实现在Fragment间完成类似Activity的导航效果。
总结起来,Rabbits 配置简单,上手快,侵入性小,扩展丰富 ,非常值得尝试。