Android和dependency injection

我一直在环顾四周,了解在Android开发中使用dependency injection容器的一些信息。 具体来说,如何重写创build一个Activity的方式,也将工作时回来被杀害(不pipe什么原因)。

有没有人有这方面的经验?

看来你可以使用Google Guice 2.0和Android。 你也可以看看roboguice 。

编辑:

Spring现在也适用于Android

编辑: Roboguice现已被弃用。 你可以试试牙签背后的开发者的评论中提到的牙签。

最适合的Androiddependency injection库是Dagger by Square 。 Spring和Guice都是为Java应用程序devise的,而不是Android。 如果你唯一的要求是简单的依赖pipe理,Dagger是最好的select,并且有JSR-330的支持。

你可能也想考虑Spring ME 。 尽pipe最初用于Java ME,但我也看到了人们使用Android的报告。 好处是你有一个熟悉的编程模型(Spring),没有惩罚:Spring ME有0k的占用空间。

如果您习惯在其他项目中使用Spring,那么对于Android的Spring (它只是一个支持Auth支持的REST库), Spring ME (完全不同的工作stream和简化的特性集)或Tiny Spring (例如Spring – configuration)。

你可以给我的项目RoboSpring一试。 从描述:

RoboSpring是Android平台的Spring框架(真正的)端口。 此外,它还提供了对RoboGuice引入的function的初步支持,例如将视图引用注入活动等。 RoboSpring是基于3.1.0版本发布的Spring核心,bean,上下文和aop组件。 它提供了以下function:

  • 使用Springconfiguration文件(XML)configuration应用程序组件
  • 使用Spring应用程序上下文中的bean自动装载您的Android组件。
  • 将Android应用程序上下文注入到Spring Bean中。
  • 将视图注入活动。
  • … 和更多

https://github.com/dthommes/RoboSpring

还有一个新的Android的Spring项目: Tiny Spring 。 它解决了XMLconfiguration的基础知识,但并没有做到Spring所做的一切。