Android 安德烈注释与匕首2

Android 安德烈注释与匕首2,android,dependency-injection,dagger-2,android-annotations,Android,Dependency Injection,Dagger 2,Android Annotations,我正在阅读关于依赖注入的文章,发现了两个引起我注意的libs,AndroidAnnotations和Dagger 2。我看到的是AA有很多功能,包括DI,但大多数开发人员都在使用Dagger2进行DI 我想知道DI与AA和DI与Dagger 2之间的区别是什么?如果我用AA,就意味着我不需要匕首2 我找不到关于DI和AA以及与其他库比较的更多信息 任何信息都会有很大帮助。我不认为AA和Dagger可以比较 Dagger是一个通用的依赖项注入库,具有很多功能。它也被设计为在Android上运行,但

我正在阅读关于依赖注入的文章,发现了两个引起我注意的libs,AndroidAnnotations和Dagger 2。我看到的是AA有很多功能,包括DI,但大多数开发人员都在使用Dagger2进行DI

我想知道DI与AA和DI与Dagger 2之间的区别是什么?如果我用AA,就意味着我不需要匕首2

我找不到关于DI和AA以及与其他库比较的更多信息


任何信息都会有很大帮助。

我不认为AA和Dagger可以比较

Dagger是一个通用的依赖项注入库,具有很多功能。它也被设计为在Android上运行,但它不需要Android,它可以应用于纯Java项目。它有许多依赖注入特性,用于完全基于代码生成的依赖注入

AndroidAnnotations是Android的一个基于注释的框架。它确实有一个有限的依赖注入模块(它只是AA的一小部分),但是这不是它的主要特性。它为Android添加了许多基于注释的、删除样板文件的API,这些API用于每个项目,通常需要大量不必要的代码,如视图和资源注入、事件处理、实例状态恢复、线程等。您可以看到AA的所有使用案例

Dagger和AA,实际上,将Dagger中复杂的dep注入和AA的许多功能结合使用(我在所有项目中都这么做)是非常有意义的


免责声明:我是AndroidAnnotations开发人员

最近,我通过实现Dagger 2和Android架构组件(Room和Viewmodel)创建了一个示例应用程序,它可以帮助您了解使用Dagger库和MVVM架构的依赖注入