Green DAO vs ORM lite vs Active Android

Rav*_*i G 60 android ormlite activeandroid greendao droidparts

哪个是适用于Android的最佳ORM工具?

我看到ORMlite和ActiveAndroid是最受讨论的,我的一个朋友建议我使用GreenDAO.那么寻找一些可以帮助我做决策的知识资源?

我希望判断的功能是免费提供(开源),良好的文档,活动论坛,稳定版本等,这是开发人员所需要的.

R W*_*rld 23

我建议ORMlite它的开源免费软件,并有良好的文档,它也支持Java和Android.

它有很好的开发人员支持和在ORMlite上运行的许多应用程序(包括我已经开发:)).

检查ORMLite和Green DAO的比较以获得您的信息.

  • 我在一年或两年前发现这篇文章,同时为Android寻找一个好的ORM,这导致我使用ORMLite一段时间,我很遗憾.虽然ORMLite真的不适合Android.如果看一下基准测试,即使在最新的Android操作系统上,它也会比其他ORM(如GreenDAO)慢几个数量级.这是因为ORMLite在很大程度上依赖于对所有事物的反射,而且速度很慢,因为它创建了许多需要GC的对象.Android中的GC =滞后UI.我建议在不同的ORM上投入时间. (6认同)
  • 关于比较...我不明白使用JAR文件大小作为库'权重'的度量.一个库可能具有许多额外的可选功能,这些功能在大多数项目中被剥离.我认为有必要构建每个的基本项目并检查发布版本的APK大小增量. (4认同)
  • 感谢您的回复,但在那次比较中,我认为ORMLite和GreenDAO没有任何重大差异.我能够发现GreenDAO表现更好,但ORMLite很受欢迎.仍然试图了解哪个使ORMLite比表现良好的ORMLite更受欢迎. (2认同)

Phi*_*ipp 11

ORMLite和GreenDAO之间的区别在于注释的使用.虽然ORMLite使用批注,GreenDAO并不像描述在这里.

ORMLite使用的注释依赖于反射,这可能会影响性能,特别是在较慢的Android设备上以负面方式.看看比较ORMLite和GreenDAO的基准会很有意思.

  • Android上的ORMLite可以使用编译时生成的配置文件,避免在应用程序使用期间完全依赖反射.使用注释对我来说很重要,因为您可以使用现有的模型对象. (16认同)

Tom*_*Tom 5

我使用的一些库中存在的一个问题是它们需要在android.app.Application.onCreate()中进行初始化.我更喜欢库允许我在辅助线程,服务或完成显示用户界面后进行初始化.

我相信Active Android有这个'问题',而ORMLite没有.我不确定GreenDAO.

它是否真的是一个问题取决于你的应用程序,但我会注意到onCreate()的文档说"实现应尽可能快(例如使用延迟初始化状态),因为在此函数中花费的时间直接影响到在流程中启动第一个活动,服务或接收者的表现."

与此无关,我注意到ActiveAndroid使用注释,如ORMlite,但不像GreenDAO使用代码生成.