3

我需要存储我的 android 应用程序内容,并想知道我应该使用什么存储空间。SQLite 数据库或 XML 文件?

应用程序和数据的一些特征:

  1. 该应用程序用于跟踪(每日)体重、腰围、胸部、++ 的身体测量值
  2. 测量类型分为单独的选项卡,彼此不依赖/不相关
  3. 实体包含少量数据,4-5个属性
  4. 预计数据量适中。最大值(每月 30 次测量 x 5 次测量类型 = 每月 150 次测量/一年中 1800 次)
  5. 不会使用任何高级查询。主要是读取(所有数据元素)和添加新的测量值。
  6. 我希望能够轻松地将测量数据共享/导出到例如保管箱或电子邮件。

我想将数据存储在具有这些要求/特征的 XML 文件中没有性能问题。如果是这样,我应该将每种测量类型分别放在 XML 文件中吗?我应该将文件存储在移动设备的哪个位置?

4

3 回答 3

5

我会阅读您在 Android 上可用的存储选项,以尝试挖掘更多信息。

您所描述的,有一次写入保管箱中的文件似乎写出保存在保管箱中的 XML 文件似乎是一个不错的选择。没有复杂的查询,一次只读取一条记录。

但是,我觉得使用 SQL 数据库不会做更多的工作。从长远来看,这将更加灵活。现在你不想做查询,但有一天你可能会。另外,您不必担心将数据拆分为多个文件并进行解析。当您尝试缩放时,解析很快就会变得很麻烦。

我建议编写一个 ContentProvider,然后将所有详细信息放在那里。这样,您的程序就不会关心数据是如何存储的,以防您以后想更改它,因为 Provider 会为您完成所有繁重的工作。我宁愿使用CursorAdapter也不愿使用其他任何东西,而您可以从使用 SQLite 中获得。加上所有新的CursorLoader可以保持应用程序的性能。

于 2012-08-05T15:49:12.817 回答
3

最好的长期解决方案是使用 SQLite 数据库。

但是如果你想使用 XML,这里已经提供了一个很好的解决方案: Store static data in Android - custom resource?

于 2012-08-05T15:47:51.030 回答
0

如果您的 XML 数据很大。XML 解析然后插入是一项非常昂贵且耗时的操作。

XML 解析和插入将面临的一些问题。

一种。XML 解析是内存密集型的,因此您的堆大小会增长,您需要注意这一点,因为这可能会导致崩溃。湾。SQLite DB 中的插入每个元组(行)大约需要 100 毫秒,因此您可以计算抽取数千行数据所需的时间。

如果您的数据不是太大,请不要担心使用 SQLite。

于 2012-08-05T15:45:58.523 回答