zoukankan      html  css  js  c++  java
  • Android依赖注入:Dagger、RoboGuice和ButterKnife

    当涉及到Android上的依赖注入(DI)类库的时候,存在不少的选择,但怎么知道哪一个最适合你呢?当差别很细微的时候,看一看别人为什么中意一种或者另一种方案或许是很有用的。

    Dagger

    在他的关于DI新系列的第一部分中, Antonio Leiva称赞了一个叫做Dagger的框架。在开始的时候他总体概述了一下DI-它是什么,解决了哪方面的问题,人们获得了什么好处-并提供了一个研究依赖注入的简单方式。

    > 我们可以把它当做应用中的一个模块, 负责为其它模块提供实例并且注入依赖关系。那是它的基本职责。模块的创建位于我们应用中的一个点上,这样我们可以拥有完全的控制权。

    Dagger Leiva说,特别适合用在低端设备上,因为它没有采取反射而使用了预编译技术,因为基于反射的DI非常占用资源和耗时。Dagger或许不是最理想的依赖注入框架,但Leiva认为,它是最高效的。

    RoboGuice

    Paresh Mayani在文章做一个懒惰但高效的Android开发者中,深入的讲解了Android DI框架-Dagger,还有ButterKnife和Android Annotation (AA) -但只充分探讨了基于Google Guice类库的RoboGuice,Mayani提供了大量RoboGuice的快速和实用资源,包括:

    • 注解使用的演示
    • 安装提示
    • 完整的Activity示例
    • 使用技巧
    • RoboGuice的优点
    • 与ActionBarSherlock整合

    总体而言,Mayani认为RoboGuice节约了大量的时间。较少的代码意味着较少的错误,较少的样板代码意味着可以把更多的时间放到应用的核心逻辑上。

    ButterKnife

    显然,Jake Wharton喜欢ButterKnife。但是对于外界的意见,Harsha Vardhan 将ButterKnife和RoboGuice进行了比较。Vardhan提供了一个有用的表格来比较各自的特点,例如:

    • 所需的最少jar包
    • 与ActionBarSherlock的兼容性
    • 单击监听器的注入
    • POJO注入
    • 性能

    Vardhan不赞成固定的使用一种或者另一种方案,相反,他建议要仔细考虑每一个项目的具体需求。

    > 哪一个是最好的依赖注入框架
    > 这完全取决于项目的使用

    此外,Vardhan警告说,DI框架没有针对移动环境进行优化,再一次,所有的事物都不完美。

    结论

    与其他大多数的开发解决方案一样,每种方案都有优点和缺点,而且必须符合个人的需要。Leiva, Mayani和Vardhan给Android开发者讲解了3种DI解决方案(还有更多的提示),所以如果你正在寻找一个起点,那么就去那里看看。

    那些全新的DI,顺便说一句,这3个博主都说出了关于DI的自己的观点,并下了自己的定义-这对于寻找更多风格解释的人来说是非常有用的资源。

  • 相关阅读:
    基于jQuery的一个弹出层
    获取一个数组内的最大最小值
    flex内根据id(string)获取对象
    整理的一份iframe编辑器代码
    仿163邮箱工具条
    获取dom到浏览器窗口坐上坐标
    the solution to fix 'Failed to access IIS metabase'
    .Net下的Windows服务程序开发指南.
    Castle学习笔记之Windsor(二)
    IOC:主要概念
  • 原文地址:https://www.cnblogs.com/myPersonalTailor/p/4934031.html
Copyright © 2011-2022 走看看