Dagger、RoboGuice和ButterKnife
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不赞成固定的使用一种或者另一种方案,相反,他建议要仔细考虑每一个项目的具体需求。
分享到:
相关推荐
Android DI框架详细介绍,以及使用方法等等。助你快速入门。
使用APT实现的一个DI框架
Injekt:由Kotlin编译器插件支持的下一代DI框架Injekt是面向Kotlin开发人员的经过编译时检查的DI框架。 Injekt具有高度的实验性,并且api不稳定。 最小示例: // declare givens@Given val foo = Foo ()@Given fun ...
使用android studio 运行,下面是一个简单的文档,这个代码是一个demo 一、Activity的使用 1、SNActivity 框架最基本的activity,可调用$(SNManager)进行操作activity,具体用法请参考文档或代码 2、...
封装了很多工具类,retrofit+okhttp+rxjava+digger2很好用的moudle集成到项目里面
Avicenna依赖注入框架###概要Avicenna是一个简单的轻量级依赖注入框架,适用于 Java 和 Android,灵感来自 Dagger 和 CDI。 它主要是为了减少 Android 等简单 Java 环境中依赖注入的开销。 使用像 Spring IoC ...
Android单元测试(三):JUnit单元测试框架的使用 代码和测试代码在junit子package下面 Android单元测试在蘑菇街支付金融部门的实践 代码和测试代码在groupshare子package下面 Android单元测试(四):Mock以及Mockito...
a concise di library which can avoid check null when want to invoke a implementation by interface Project It had been used in project KnowWeather ,you can learn more. 同时已用在日活百万级别的线上项目...
If you find a faster DI framework, let me know. I will drop the title as long as it is proved. Why Tiger? It is the fastest! Not faster, but the fastest! I have tried it on a big project with ~200 ...
dagger_demo Dagger2研究
Kodein框架的样本项目科丁-DI咖啡机(多平台应用) 基于Dagger的示例通用的多平台库di:coffee-maker:common :具有Kodein-DI实现的Kotlin MPP可共享库./gradlew :di:coffee-maker:common:build安卓di:coffee-maker:...
最近,我尝试在Dagger 2(DI框架),用于处理持久性的领域,Guava(实用程序和帮助程序类),Jodatime(时间操纵),Retrofit(基于Restfull api的联网),Picasso,Otto(事件总线),黄油刀(视图注入),Mockito...
Android, Espresso2, Dagger2, DI, Mock, Mocking, jUnit4, AndroidTesting, RxJava, Retrolambda, TestSynchronization 概述 在这个简单的代码中,我想将重点放在 Espresso2 和 Dagger2 上,尤其是在测试中使用 ...
Afinal是一个android的ioc,orm框架 xUtils ** android orm、位图、http、视图注入... ThinkAndroid ThinkAndroid KJFrameForAndroid KJFrameForAndroid droidparts DI、ORM、JSON、... android-common Android 常
NotesClientServerApp ... -DI框架 -ORM框架 数据库 运行服务器 Android Studio 打开“编辑运行/调试配置”对话框点击“科特琳” 点击“ +”按钮在“名称”中输入任何服务器名称'使用模块的类路径',选择'NotesClientS
出于学习的目的做了这款Material Design风格的简洁的阅读应用,基本涵盖了当前Android端开发最常用的主流框架,阅读内容目前包括知乎日报、微信精选、干货集中营,知 识、新闻、福利一网打尽,后期会持续更新,坚持...
android-the-movie-db 阿皮 系统设计 使用设计样式 建筑模式 使用干净的架构 UI->框架- 演示者->接口适配器- >应用程序业务规则- 实体->企业业务规则- 存储库->接口适配器- 数据源->框架- 系统层 演示(UI) ...
TMDb多平台 ... 使用DI框架或服务定位器 迁移到Kotlin1.4.X。 要查看更改,请单击。 贡献 :handshake: 随意打开一个问题或提交任何错误/改进的拉取请求。 结果 :television: 执照 :balance_scale:
在分析android源码的过程中我更希望以一种有序的分析过程来分框架的源码,这里我简单的以以下的源码流程来分析:初步消息机制原始码系统核心进程启动流程源码应用进程启动流程例程apk解析与安装流程原始码活动启动...
Mudah: Dapat melakukan Pengembangan多项目Dengan布局dan Fungsi Yang Dapat Dipanggil Tanpa Harus Membuat Fungsi Mentah Di Dalam Aplikasi。 Kompabilitas: Dapat Digunakan Membuat桌面应用程序,Android...