适用于Android的轻量级依赖注入框架

时间:2011-10-22 05:48:44

标签: android spring

我正在编写一个Android应用程序,随着代码的增长,我意识到它需要使用依赖注入框架来实现更好的架构。

(1)对于Android应用来说,Spring太重了吗?

(2)如果是,为此目的是否有替代的轻量级框架?

谢谢!

8 个答案:

答案 0 :(得分:3)

查看RoboGuice

RoboGuice: Dependency Injection for Android

答案 1 :(得分:2)

Android的弹簧有一个特殊的扩展:Spring Android

  

Spring Android是Spring Framework的扩展,旨在简化原生Android应用程序的开发。

所以我认为Spring一般不会对Android很重。

但当然你不要使用spring-all-in-one.jar

另一方面,Google-Guice可能是更自然的选择。有一个关于Android和Guice的Stack Overflow问题:Guice Performance on Android

答案 2 :(得分:1)

在Android上成功移植Spring框架(core,webmvc,hidernate,aop)+ DWR + H2。 四个月前,我决定调查此事,以迁移使用Spring框架构建的服务器应用程序 在Android平台上。目前,我已成功移植这两个应用程序。

答案 3 :(得分:1)

您可能还会考虑Dagger这是一个符合JSR-330标准的Android优化依赖注入系统。它的灵感来自Guice并由Guice贡献者撰写。

它支持代码生成方法,避免了android虚拟机中大量的反射成本,同时推迟链接以避免类加载直到最后一个负责任的时刻。这样做的好处是编译时错误和图形分析。

答案 4 :(得分:1)

请查看我的名为 RoboSpring 的项目。从描述:

RoboSpring是Android平台的Spring框架的(真实)端口。此外,它还为RoboGuice引入的功能提供了初步支持,例如将View引用注入活动等。 RoboSpring基于Spring的核心 bean context aop 组件的3.1.0 RELEASE版本。它提供以下功能:

  • 使用Spring配置文件配置应用程序组件 (XML)
  • 使用Spring应用程序上下文中的bean自动装配Android组件。
  • 将Android应用程序上下文注入Spring Bean。
  • 将视图注入活动。
  • ......还有更多

https://github.com/dthommes/RoboSpring

RoboSpring - Inversion of Control for Android

快乐注射!

答案 5 :(得分:1)

您可能会发现Feather有趣,如果您的目标是低占地面积和高性能。该项目包括一些基准,将它与PicoContainer,Guice,Dagger,Spring进行比较。

答案 6 :(得分:1)

Toothpick也是一个不错的选择。

TP: Fast & Simple DI for Android

和Dagger 2一样快,像RoboGuice一样简单

注意:是的,我是作者之一。

答案 7 :(得分:0)

Android还有一个新的Spring项目:Tiny Spring。它解决了XML配置的基础知识,但没有完成Spring所做的一切。