关于Android依赖注入框架ButterKnife和Dagger的简单比较

最近调研了Android平台可以使用的依赖注入框架。发现现在常用的有四种。Dagger、Butter Knife、RoboGuice、Android Annotations。经过一系列的比较,最后我们的选择

的范围缩小到Dagger、Butter Knife这2个框架上。其实在国内外使用的比较多的应该是Dagger。但是我觉得还是有点复杂了,再看jakewharton的blog时,他也提到了dagger,我

摘抄了他在stackoverflow上回答Difference between Dagger and ButterKnife Android这个问题的答案。简单翻译下,有人说Butter Knife只是简单是做了绑定View的操作,不是

真正的inject。Dagger才是真正的inject。jakewharton在下面回复了说如果使用了Dagger,在View注入上你会想死。(哈哈,有点争锋相对的意思。)。Butter Knife的确不是

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

以直接叫他是findViewById 都没问题。(哈哈,真的有点生气了!)

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

们目前就准备采用ButterKnife,后期再配合Dagger的使用策略。希望能帮助再二者见犹豫的朋友。

时间: 2024-11-11 00:55:55

关于Android依赖注入框架ButterKnife和Dagger的简单比较的相关文章

Android 依赖注入框架RoboGuice

概述 在开发应用时一个基本原则是模块化,并且尽最大可能性地降低模块之间的耦合性.Dependency injection 大大降低了类之间的依赖性,可以通过annotation描述类之间的依赖性,避免了直接调用类似的构造函数或是使用Factory来参加所需的类,从而降低类或模块之间的耦合性,以提高代码重用并增强代码的可维护性. Google Guice提供了Java平台上一个轻量级的 Dependency injection 框架,并可以支持开发Android应用.本指南将使用Android平台

Dagger——Android上的依赖注入框架

* 你也可以去Github查看这片文章 简介 在开发程序的时候,会用到各种对象,很多对象在使用之前都需要进行初始化.例如你要操作一个SharedPreference,你需要调用getSharedPreferences(String name,int mode)来获取一个对象,然后才能使用它.而如果这个对象会在多个Activity中被使用,你就需要在每个使用的场景中都写下同样的代码.这不仅麻烦,而且增加了出错的可能.dagger的用途就是:让你不需要初始化对象.换句话说,任何对象声明完了就能直接用

Android Dagger依赖注入框架浅析

今天接触了Dagger这套android的依赖注入框架(DI框架),感觉跟Spring 的IOC差不多吧.这个框架它的好处是它没有采用反射技术(Spring是用反射的),而是用预编译技术,因为基于反射的DI非常地耗用资源(空间,时间) 由于现在开发都是用Android Studio了,所以我这里大概讲下配置Dagger框架的开发环境,需要怎么做. (由于Android Studio中用Gradle,所以跟传统我们用Eclipse配置的话,直接导入jar包,有点不一样.) 在开始看我的博文前,希望

Android依赖注入Dagger的使用和源码解析(上篇)

一.基本概念 依赖注入(DI)和控制反转(IOC): 依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源:而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源. 使用依赖注入可以带来以下好处: 依赖的注入和配置独立于组件之外. 因为对象是在一个独立.不耦合的地方初始化,所以当注入抽象方法的时候,我们只需要修改对象的实现方法,而不用大改代码库. 依赖可以注入到一个组件中:我们可以注入这

Android 依赖注入: Dagger 2 实例讲解(一)

本文原创,转载请注明出处:http://blog.csdn.net/zjbpku 关于Dagger,在之前的博文(Android 依赖注入:Dagger 实例讲解(Demo下载))中已有介绍, 本文说的Dagger 2主要是由Google技术 人员参与开发的,当然包括Square的各位及其他一些Contributors在内的大牛也贡献了不少.该项目大概是从去年11月份开始启动的,到目前该项 目还在继续进行,Snapshot version也是刚刚发布不久,从Github提供的内容看,不久会是Pr

Android 依赖注入 ButterKnife 基本使用

ButterKnife 是一个快速 Android View 注入框架,开发者是Jake Wharton,简单的来说,ButterKnife 是用注解的方式替代findViewById和setXXXListener 项目GitHub地址:https://github.com/JakeWharton/butterknife/ Android Studio 配置步骤可以直接参考Github上的介绍,很简单. ButterKnife 是在编译时注解,不会在运行时产生负担,Build工程后你会发现它生成

安卓开发 第一篇 关于依赖注入框架dagger2的使用和理解

(这篇博客真是磨难重重啊,写到一半电脑蓝屏了,还好markdown编辑器保持了部分类容) 最近开始重构项目,在重构项目中用到了依赖注入框架dagger2,发现它确实很方便,能大大加快我们编写代码的速度,同时也很方便我们对于功能模块的解耦.在这里就不过多介绍dagger2了,大家谷歌 百度一下就能得到很多关于dagger2的介绍.学习dagger2是需要一定的学习成本的,我自己开始学习的时候也差不多花了一周的时间才弄明白怎样使用dagger2,下面就说说自己对dagger2的理解和使用方法. da

Android 依赖注入函数库Roboguice(一)

Roboguice是一个用于Android应用的依赖注入框架,使用Google官方的Guice库位极大地简化了Android的依赖注入.使用他使编程变得更加简单有趣. 使用Roboguice需要几个jar点击下载 下载知道导入到自己的项目中 使用Roboguice是Activity页面需要继承RoboActivity /** * */ package com.example.roboguicetest; import com.google.inject.Inject; import robogu

史上最好用的依赖注入框架Google Guice【转】

Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC).Guice非常小而且快. (其他的依赖注入框架还有Dagger,Spring) Spring框架的依赖注入是家喻户晓的,但是在实际的开发中我们想使用便捷的依赖注入功能,但是又不想引入Spring框架的复杂性,该怎么办呢? 有了Google Guice,这个问题便简单了,首先在你的maven项目里引入 <dependency> <groupId>com.google.injec