【发布时间】:2013-03-29 19:31:54
【问题描述】:
我有 30 个对象,每个实例由 7 个字符串字段和一个小位图组成。 这些对象将被销毁并每天重新创建。 在我的 android 应用程序中,从数据库中写入和读取这些数据会更有效吗?还是简单地创建一个新类并创建 30 个实例并将它们存储在一个数组中? 内存效率/性能/等。
感谢您的宝贵时间。
【问题讨论】:
标签: android database performance pojo memory-efficient
我有 30 个对象,每个实例由 7 个字符串字段和一个小位图组成。 这些对象将被销毁并每天重新创建。 在我的 android 应用程序中,从数据库中写入和读取这些数据会更有效吗?还是简单地创建一个新类并创建 30 个实例并将它们存储在一个数组中? 内存效率/性能/等。
感谢您的宝贵时间。
【问题讨论】:
标签: android database performance pojo memory-efficient
如果您不想为数据库编写样板代码,您可以将您的对象以JSON 或XML 格式保存为文件。
你有两种方法:
JSON 或XML 中,并在您的类和所需数据格式之间编写转换器数据库是很好的解决方案,因为 Android 中的SQLite 非常快等等。但是如果你想改变表的结构,你将不得不在SQLiteOpenHelper的onUpdate()方法中编写ALTER TABLE查询和其他麻烦。
所以我建议使用XML 或JSON 来存储数据。
更新
另外,您可以将您的自定义数据类标记为可序列化,将值存储在 ArrayList 或其他结构中并将其序列化以存储,然后反序列化以读取。
【讨论】:
将项目写入数据库,因为它们需要持久化,即使只保留 24 小时。
您应该将图像文件存储在 Internal Storage 沙箱中,并在数据库中按文件名引用它们,因为在数据库中存储最小的 Bitmap blob 通常效率低下。
【讨论】:
对于有限数量的对象,我认为您是具有Object 表示并将它们存储在ArrayList 中的击球手。大量条目的数据库设计。
但是,如果数据需要保存一整天,如果您将其留在内存中,您可能会因GC 而丢失它,在这种情况下,您别无选择,只能将其存储在数据库中。
你从哪里得到这些数据?
【讨论】: