Butterknife vs AndroidAnnotations [关闭]

Posted

技术标签:

【中文标题】Butterknife vs AndroidAnnotations [关闭]【英文标题】:Butterknife vs AndroidAnnotations [closed] 【发布时间】:2014-02-12 07:38:35 【问题描述】:

我正在考虑在我的应用程序中使用Dagger。我还想使用一个视图注入库,它为我提供了很多功能来节省编写代码的时间,但另一方面,它在性能方面不应该太大而且成本很高。

androidAnnotations 和 Butterknife 之间有什么主要区别吗?

【问题讨论】:

张贴链接以使其清晰 为什么这会被关闭为“基于意见”。所有技术答案都有一些意见。帮助某人选择框架的指南肯定不是 Stack Overflow 的主题吗?嘘。 【参考方案1】:

如果您只是想通过注入视图(或设置点击侦听器)来减少应用程序中的样板代码,您可以从 Butterknife 开始。它速度快、体积小、使用简单。它旨在注入视图、侦听器和其他与 UI 相关的对象。

如果你想注入更多的东西,比如系统服务,或者强制方法在后台或 UI 线程中运行,或者注入动画等资源,你应该去AndroidAnnotations。您将面临的小缺点是,对于您要增强的每个类,将生成一个具有相同名称并在末尾加上“_”的新类。因此,在调用活动或创建片段时,您将不得不习惯使用这些名称。如果这对您来说不是问题,请使用它。这两个库都会生成代码,因此您在运行时不应该有任何性能损失。

Dagger 不适用于视图注入。 Dagger 允许您更好地构建代码并定义不同组件之间的可注入依赖项。如果你掌握它是非常强大的,但它不会取代Butterknife

【讨论】:

我刚刚提到了 Dagger,因为我不确定兼容性。在我使用 Roboguice 之前,现在我需要切换,因为它与 android 注释不兼容。

以上是关于Butterknife vs AndroidAnnotations [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ButterKnife编译时生成代码原理:butterknife-compiler源码分析

ButterKnife编译时生成代码原理:butterknife-compiler源码分析

Butterknife--Android Butterknife使用方法总结(转)

使用butterknife zelezny插件时必须保证已导入butterKnife的库工程。

Android Studio使用ButterKnife插件

新版本ButterKnife的配置