我是匕首2的新手和android中的依赖注入。我听说很多Android开发人员都使用匕首2。我理解它管理类之间的依赖关系,我们不再使用关键字“new”但我想知道为什么我应该使用它呢?它是否管理内存分配并最小化泄漏?它对应用程序的性能有好处吗?
答案 0 :(得分:10)
感谢大家+1回答。但我想通过依赖注入专注于应用程序的内存和性能。所以,我在android开发者网站上找到了这个答案。 https://developer.android.com/topic/performance/memory.html#DependencyInjection:
使用Dagger 2进行依赖注入依赖注入框架
可以简化您编写的代码并提供自适应环境 这对测试和其他配置更改很有用。
如果您打算在应用中使用依赖注入框架, 考虑使用Dagger 2. Dagger不使用反射来扫描你的 应用程序的代码。 Dagger的静态编译时实现意味着它 可以在Android应用程序中使用,而无需不必要的运行时成本或内存 的使用。
使用反射的其他依赖注入框架倾向于 通过扫描代码注释来初始化进程。这个 进程可能需要更多的CPU周期和RAM,并且可以 在应用启动时会导致明显的延迟。
答案 1 :(得分:5)
主要思想是将类分离以使代码更容易测试和维护,因为没有硬性依赖。由于我对解释不太满意,我建议你看看下面的文章,以防你还没读过。
MVP和DI:
匕首2:
Dagger 2.11:
我希望这可以回答你的任何问题!
答案 2 :(得分:5)
性能取决于开发人员,以避免资源的低效使用,例如CPU,内存,图形,网络和设备电池。 但依赖注入是设计模式,它基于控制反转的概念,它表示类应该从外部获取其依赖性。简单来说,没有类应该实例化另一个类,但应该从配置类中获取实例,而不是在内部构造它们。 因此,这种模式允许开发人员编写具有低耦合的代码,因此可以很容易地进行测试和维护。
但是要比较依赖注入库的性能,请看这个好的链接:http://blog.nimbledroid.com/2016/03/07/performance-of-dependency-injection-libraries.html
答案 3 :(得分:1)
我想这是一个很好的地方,可以找到关于使用Dagger的好处的所有讨论。找到其他开发人员在reddit上使用dagger的想法。 Reddit link。