Android的 - 数据库与文件系统和对象

问题描述:

我有以下情形:我解析来自服务器的JSON响应到SQLite数据库,然后我使用的数据库和查询,过滤datamodels,...Android的 - 数据库与文件系统和对象

我的一位同事,一位iOS开发人员说,他不会将JSON解析为数据模型,并且不再将数据保存到数据库中。他只需要字典,使它们可用于应用程序,并持久保存到二进制文件中。

现在我想知道,有没有人在Android上以同样的方式做到这一点?在应用程序中有1000个HashMap对象(每个对象具有大约10个其他对象(字符串))会有问题吗?看起来对我来说很重要,它会降低我的应用性能吗?但为什么它在iOS上运行良好?

我们都在不同的项目。我们将数据保存在json中的一个项目有很多不同的字段和一些树结构,因此将其存储到数据库中将是一项繁忙的工作。但是,由于尺寸的限制,我们遇到了内存问题。

为了让您的数据生活更轻松,并且与CoreData大致平行,请参阅http://ormlite.com/。它是一款适用于Android/Sqlite的orm工具。我做了最初的Android端口,并在几乎每个项目中都使用它。如果你有很多数据并且只能访问小部分,那么数据库可能会更好。

1000个对象不会真的杀死你,但它的项目具体而且很难说。然而,我不认为让Json留在内存中会更好。至少不是数量级。

+0

非常感谢。我现在正在尝试,但也许在我的下一个项目中,我会看看ormlite。 – Tobi

是否要保留数据?如果你希望它可以从一个应用程序运行到下一个应用程序,那么你必须通过将它存储到一个文件中来实现它。我发现数据库是最简单的,但我想如果你真的想要你可以把它放在某种二进制文件中。但是,您必须担心如何从该序列化数据中来回移动。

如果您想您的应用程序的生命周期内保持在内存中的一切,这很好。你可能会注意到速度的增加。一个1000对象的HashMap应该适合你的内存。

我无法从你的同事的描述中得知,但他的实现可能使用的是CoreData,这是一款在Android中没有并行功能的iOS工具。您提供的描述与其高水平相匹配。在Android have been addressed here上处理该功能的其他方法。

+0

看来他并没有使用CoreData,因为他声称他只是使用普通的字典。 – Tobi