这种在Android中预加载数据库的方式是否适用于2.2及更高版本?

这种在Android中预加载数据库的方式是否适用于2.2及更高版本?,android,database,Android,Database,我在这里看到了这个问题,我想知道为android应用程序“预加载”数据库的相同方法是否仍然有效。我将在2.2平台上开发我的应用程序,但我想确保,如果我使用这种方法,我不必完全重新设计 第二,如果我有需要查找的不变数据,这是最好的方法吗?还是XML是更好的选择 示例:我有一辆车,一辆车有重量、颜色、品牌、型号、发动机等属性。这些属性都需要在查找中访问,但属性和条目永远不会更改(如果更改,则更改速度非常慢,我会发布一个更新来添加更改的少数内容) 感谢您的帮助。答案并不简单,您需要将不同手机中使用的S

我在这里看到了这个问题,我想知道为android应用程序“预加载”数据库的相同方法是否仍然有效。我将在2.2平台上开发我的应用程序,但我想确保,如果我使用这种方法,我不必完全重新设计

第二,如果我有需要查找的不变数据,这是最好的方法吗?还是XML是更好的选择

示例:我有一辆车,一辆车有重量、颜色、品牌、型号、发动机等属性。这些属性都需要在查找中访问,但属性和条目永远不会更改(如果更改,则更改速度非常慢,我会发布一个更新来添加更改的少数内容)


感谢您的帮助。

答案并不简单,您需要将不同手机中使用的SQLite版本与这些版本使用的文件格式进行交叉引用

前面的SO问题显示了确定SQLite版本的困难,如下所示:

下面是一个页面,列出了不同SQLite版本的文件格式差异:


答案并不简单,您需要将不同手机中使用的SQLite版本与这些版本使用的文件格式进行交叉引用

前面的SO问题显示了确定SQLite版本的困难,如下所示:

下面是一个页面,列出了不同SQLite版本的文件格式差异:


是的,博客文章中提到的预加载方法(文章链接到()中)在经过一些用户强制关闭提示后仍然适用于我。在Desire HD上找不到数据库时出现了一些问题,这导致了问题。很难找出到底是什么问题,但我认为问题出在文件位置。你应该定义

  private static String DB_PATH = Environment.getDataDirectory() + "/data/your/app/package/databases/"
而不是

  private static String DB_PATH = "/data/data/your/app/domain/databases/"
我还将所有数据库访问更改为可写,正如我读到的那样,这导致了问题,但不确定这是否真的是问题所在


关于你的第二个问题,我想说这取决于你有多少数据。如果数据量很大,出于性能原因,您可能最好还是使用数据库。使用SQLite API存在一些缺陷,例如字段中的撇号(确保使用方便的方法query、update和insert,而不是rawQuery)。但是,我相信XML也有,我不认为有任何“正确”的方法比您最熟悉的方法更好,也就是说,您更喜欢使用数据库还是原始XML?如果两者都不是,而且你也不打算进行重大的更新或查询,我会使用XML,甚至JSON,因为上面的原因和Jodes所提到的。

是的,文章链接到()的博客文章中提到的预加载方法在经过一些用户强制关闭后仍然适用于我。在Desire HD上找不到数据库时出现了一些问题,这导致了问题。很难找出到底是什么问题,但我认为问题出在文件位置。你应该定义

  private static String DB_PATH = Environment.getDataDirectory() + "/data/your/app/package/databases/"
而不是

  private static String DB_PATH = "/data/data/your/app/domain/databases/"
我还将所有数据库访问更改为可写,正如我读到的那样,这导致了问题,但不确定这是否真的是问题所在


关于你的第二个问题,我想说这取决于你有多少数据。如果数据量很大,出于性能原因,您可能最好还是使用数据库。使用SQLite API存在一些缺陷,例如字段中的撇号(确保使用方便的方法query、update和insert,而不是rawQuery)。但是,我相信XML也有,我不认为有任何“正确”的方法比您最熟悉的方法更好,也就是说,您更喜欢使用数据库还是原始XML?如果两者都不是,而且您也不打算进行重大更新或查询,我会使用XML,甚至JSON,因为上面的原因以及Jodes提到的内容。

Ok,那么我可能不想使用数据库。我有大约160个条目(我觉得不算太多),每个条目都有9个“单字”属性,1个可以是段落的属性。但我确实希望能够对特定属性进行排序。话虽如此,数据库仍然是最好的选择,如果用XML进行解析,那么对于我拥有的条目数量来说,解析会花费太多时间吗?160听起来不是很多,但它可能会测试XML解析器,从而测试用户的耐心(即使它只在打开应用程序时运行)。在解析CSV文件之前(使用外部库),我认为Android确实让您更容易使用Sqlite,而不是XML解析(尽管无论哪种方式都会有一个学习曲线),所以也许这就是最终的方法。这样做有一些充分的理由,所以也许我不想使用数据库。我有大约160个条目(我觉得不算太多),每个条目都有9个“单字”属性,1个可以是段落的属性。但我确实希望能够对特定属性进行排序。话虽如此,数据库仍然是最好的选择,如果用XML进行解析,那么对于我拥有的条目数量来说,解析会花费太多时间吗?160听起来不是很多,但它可能会测试XML解析器,从而测试用户的耐心(即使它只在打开应用程序时运行)。在解析CSV文件之前(使用外部库),我认为Android确实让您更容易使用Sqlite,而不是XML解析(尽管无论哪种方式都会有一个学习曲线),所以也许这就是最终的方法。这样做有一些充分的理由