匕首2对性能有任何好处吗?

时间:2017-11-02 16:59:05

标签: android dagger

我是匕首2的新手和android中的依赖注入。我听说很多Android开发人员都使用匕首2。我理解它管理类之间的依赖关系,我们不再使用关键字“new”但我想知道为什么我应该使用它呢?它是否管理内存分配并最小化泄漏?它对应用程序的性能有好处吗?

4 个答案:

答案 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