新装备来了!Butterfly – 全新的Android路由组件化框架,小而强大

Butterfly – 蝴蝶

Github地址:
https://github.com/ssseasonnn/Butterfly

Butterfly – 小巧而强大的武器,拥有它,让你的Android开发如虎添翼,Carry全场!

只有最强大和最经验的勇士才能挥动蝴蝶,但它在战斗中提供了令人难以置信的灵巧

物品介绍: +30 敏捷 +35% 闪避 +25 攻击 +30 攻速

功能介绍

蝴蝶通过两个不同的注解来实现不同的功能:

  • Agile 用于页面导航
  • Evade 用于组件化通信
  • Agile

  • 导航
  • 通过给Activity添加Agile注解,并设置对应的scheme,随后即可通过Butterfly进行导航,或者导航并获取返回数据

    
    
  • 传递参数
  • Agile支持附带参数导航,有两种方式,一种是通过拼接scheme,将参数添加到scheme中 另一种是通过调用params方法手动传入参数,或者两者混合进行, 随后可在导航后的页面中获取对应的参数

    
    
  • 解析参数
  • 在导航目的页面,可通过参数的key字段来获取传递的参数值

    
    

    除了手动解析参数以外,还可以装备Bracer来实现全自动进行参数解析

    
    

    Bracer 使用方式详情见: Github 地址:
    https://github.com/ssseasonnn/Bracer

  • 拦截器
  • Agile支持拦截器,可用于在导航前预处理部分逻辑,如进行登录检测 此外拦截器中也可进行导航,但为了避免拦截器套娃,需要添加skipInterceptor()方法以忽略拦截器

    
    
  • Action
  • Agile除了支持页面导航以外,还支持导航Action,Action无页面,可进行某些逻辑处理 首先让自定义的Class继承Action,然后添加@Agile注解并设置scheme,其余和页面导航一致

    
    
  • 流程控制
  • Agile除了直接调用carry导航以外,还可以调用flow返回Flow对象, 利用Flow对象可对导航流程进行处理

    
    

    Evade

    蝴蝶使用简单的两个注解即可实现任意组件之间进行通信,而组件之间无需任何直接或间接依赖

    例如有两个组件:Module Foo 和Module Bar 需要通信

    在Module Foo中,定义接口,并添加Evade注解:

    
    

    在Module Bar中,定义实现,,并添加EvadeImpl注解:

    
    

    由于Evade使用类名称作为定义和实现关联的重要依据,因此接口类名和实现类名必须相同,并且实现类名以Impl结尾.

    如无法以类名作为关联,也可使用相同的字符串类型作为关联key

    
    

    随后即可在Module Foo中,使用evade方法获取Home并调用:

    
    

    除此之外, Evade也支持通过下沉依赖的形式, 进行强关联类型的通信

    例如以下三个组件:公共组件Module Base,Module Foo,Module Bar

    首先将Home接口下沉至公共组件Module Base中:

    
    

    然后在Module Bar中,实现接口:

    
    

    之后便可在Module Foo中,使用evade方法获取Home并调用:

    
    

    路由表

    Butterfly会为每个使用了注解的Module生成一个路由表, 命名规则为: Butterfly[模块名称]Module

    手动注册:

    
    

    使用插件自动注册:

    1、添加插件依赖

    
    

    2、实现自己的Application类

    
    

    混淆配置

    
    

    俗话说得好,蝴蝶在手,天下我有! 这么好的装备你不来一把?

    Github地址:
    https://github.com/ssseasonnn/Butterfly

    最后

    在这里就还分享一份由大佬亲自收录整理的学习PDF+架构视频+面试文档+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料

    这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。

    当然,你也可以拿去查漏补缺,提升自身的竞争力。

    真心希望可以帮助到大家,Android路漫漫,共勉!

    如果你有需要的话,只需私信我【进阶】即可获取

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年2月8日
    下一篇 2022年2月8日

    相关推荐