AndroidAnnotations和Dagger 2

时间:2017-01-18 16:01:05

标签: android dependency-injection dagger-2 android-annotations

我正在阅读有关依赖注入的内容,并发现了2个引起我注意的库,AndroidAnnotations和Dagger 2.我看到的是AA有很多功能,包括DI,但是大多数开发人员都在使用Dagger 2 DI。

我想知道DI与AA和DI与Dagger 2之间的差异是什么?如果我使用AA,这意味着我不需要Dagger 2?

我无法通过AA找到DI的更多信息并与其他图书馆进行比较。

任何信息都会有所帮助。

2 个答案:

答案 0 :(得分:4)

我不认为可以比较AA和Dagger。

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

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

Dagger和AA can coexist,实际上使用Dagger的复杂dep注入和AA的许多功能(我在所有项目中都这样做)确实很有意义。

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

答案 1 :(得分:0)

最近我通过实现Dagger 2和Android Architectural Components(Room和Viewmodel)创建了一个示例应用程序,它可以帮助您使用dagger库和MVVM体系结构来理解依赖注入。

Here is the github project link