android db还是xml / kml?

时间:2010-10-22 04:57:37

标签: android xml sqlite

哪个好,有效,速度快?以xml格式存储信息并检索它或将信息存储在android上的数据库中?

而且,就可移植性而言,xml可以存储为资产......可以用db完成同样的操作吗? db会在所有手机中作为默认包进入。

申请涉及处理超过1000条数据记录。

3 个答案:

答案 0 :(得分:2)

当SQLite数据库需要大量数据时会更快 - 它会更快地找到你想要的东西。

对于少量数据,KML文件的开销要比DB小得多,但对动态数据非常有用。

如果需要更新或添加数据,如果要继续使用xml文件,则必须将文件存储在可写位置。

对于大约1000多个条目,我希望使用SQLite数据库 - 您可以在此处执行以下两项操作之一 - 为您的应用程序预编译数据库,然后将DB文件放入资产文件夹,然后在第一次运行时检查是否DB文件存在 - 如果不将文件从资产forlder移动到DB文件夹(请参阅下面的注释)。 或者,您可以将条目存储在资产文件夹中的KML文件中,然后在第一次运行时使用解析器将kml文件中的每个条目写入数据库。

从KML或CSV文件中获取文件需要一段时间才能处理,具体取决于条目数。 我有一个应用程序,它将从SDCard上的csv文件中获取数据,并将其加载到数据库中,因为大约7,000个条目的测试大约需要35秒。 另外我认为raw和asset文件夹的大小限制大约为1mb。

看看这个链接,它显示了在第一次运行应用程序时移动大型数据库的一种非常有用的方法:

Database Populating Solution

答案 1 :(得分:0)

您不能将资源/原始文件夹用作可写资源。他们只读。

所以基本上你有两个选择:

  1. 将数据存储到DB(SQLite)
  2. 将数据存储在首选项中 - 实际上是存储在某处的XML文件/类似于

    / data / data / [your package] / shared_prefs

  3. 我个人的选择:如果数据大小超过100条记录 - 如果偏好较少,请使用数据库。

答案 2 :(得分:0)

我的选择是

  1. 我将DB用于结构化数据。当有必要搜索某些字段的数据集或按不同字段排序时。当需要额外的逻辑时使用DB。
  2. 当只需要持久化数据时,我使用“共享prefferences”文件。没有额外的逻辑,只有键值对。