美文网首页
BufferKnife和Dagger2对比

BufferKnife和Dagger2对比

作者: 青果果 | 来源:发表于2018-03-08 20:32 被阅读0次

    Android平台可以使用的依赖注入框架,现在常用的有四种:Dagger、Butter Knife、RoboGuice、Android Annotations。

    经过一系列的比较,选择的范围缩小到Dagger、Butter Knife这2个框架上。其实在国内外使用的比较多的应该是Dagger,但是还是有点复杂的。

    Butter Knife的确不是严格意义上的注入,之所以会叫View injection,是因为一些在使用dagger的人说view injection太麻烦了。所以才会有Butter Knife的诞生。Butter Knife就是这么简单粗暴findViewById。

    好了,到这里,应该明白ButterKnife和Dagger的不同了,其实应该说ButterKnife是Dagger的补充,ButterKnife只专注于View的注入。其他的就使用Dagger吧。用ButterKnife,配合Dagger使用。

    ButterKnife

    ButterKnife是一个编译时的依赖注入框架(compile-time dependency injection framework)
    用来简化android中类似findViewById、setOnclickListener等的模板代码

    ButterKnife 有哪些优势?

    ButterKnife的具体使用,请参考文章
    http://blog.csdn.net/itjianghuxiaoxiong/article/details/50177549
    http://blog.csdn.net/zhangconglin/article/details/78403049
    它的具体优势:
    1.强大的View绑定和onClick事件处理功能,简化代码,提升开发效率
    2.方便的处理Adapter里的ViewHolder绑定问题
    3.运行时不会影响APP效率,使用配置方便
    4.代码清晰,可读性强

    ButterKnife实现原理

    1. butterKnife是一个运行时依赖注入框架,有效地帮我们简化一些重复代码。
    2. butterKnife在ButterKnife.bind方法里通过反射调用对应的类构造方法执行初始化工作,所以butterKnife并不是完全没有使用反射,只在这个地方用到了。所以butterKnife的效率也是很高的。对于反射这个技术,不应该持极端态度(彻底不用,或到处滥用)。特别是在android中,到处都是反射,对性能也是有一定的影响的。
    3. butterknife使用 apt(Annotation Processing Tool)技术来生成java类。
      注解处理器:http://blog.csdn.net/u013045971/article/details/53509237

    相关文章

      网友评论

          本文标题:BufferKnife和Dagger2对比

          本文链接:https://www.haomeiwen.com/subject/yhaefftx.html