Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中本地存储和检索数据的最佳方式_Android_Sqlite_File Storage - Fatal编程技术网

在android中本地存储和检索数据的最佳方式

在android中本地存储和检索数据的最佳方式,android,sqlite,file-storage,Android,Sqlite,File Storage,我正在开发一个android应用程序,它可以处理大量文本。我对数据存储和检索感到困惑,我应该使用哪一个来更快地检索数据?Sqlite或文件存储(json文件,每个类别有单独的文件)。首先我想到了sqlite,因为它更容易管理数据,但创建每个表中有近1000行的表需要一些时间,或者我必须随应用程序一起提供数据库,这样会增加下载大小,然后我想到了文件存储。我应该使用哪个,sqlite还是json文件,因为数据创建是一次性的过程,其余的是检索?有谁能提出更好的方法吗,我真的,真的很困惑。如果你有很多文

我正在开发一个android应用程序,它可以处理大量文本。我对数据存储和检索感到困惑,我应该使用哪一个来更快地检索数据?Sqlite或文件存储(json文件,每个类别有单独的文件)。首先我想到了sqlite,因为它更容易管理数据,但创建每个表中有近1000行的表需要一些时间,或者我必须随应用程序一起提供数据库,这样会增加下载大小,然后我想到了文件存储。我应该使用哪个,sqlite还是json文件,因为数据创建是一次性的过程,其余的是检索?有谁能提出更好的方法吗,我真的,真的很困惑。

如果你有很多文本和数据,请使用greenDAO。它将处理与SQLite相关的内容。一开始有点让人困惑,但一旦你尝试了它,你就永远不会在没有它的Android上使用SQLite:

一些有趣的链接:

假设在安装应用程序时只创建一次表,那么除非表的创建非常非常慢,否则您只需在应用程序首次安装时创建表,并在屏幕上向用户显示一些适当的消息即可

理想情况下,如果您的应用程序可以在不使用数据的情况下执行其他有用的操作,那么您可以让用户在后台完成表格创建的同时使用应用程序的其他部分

我从过去的经验中发现,创建非常大的简单表实际上非常快,但您需要进行测试,看看示例需要多长时间


还请注意,通过SQLiteOpenHelper的onUpgrade方法,您可以选择仅修改升级时需要修改的数据库部分,因此在安装新版本的应用程序时,您可能不必重新创建完整的数据库。这还包括通过将更新延迟到数据库首次使用来避免延迟应用程序启动的机制,尽管在这种情况下这可能不是您想要的。

如果应用程序只有结构而没有数据,则不需要随应用程序一起提供sqlite数据库。您可以动态创建sqliteDatabase并使用Queries创建表它应该在第一次启动时包含数据那么数据检索呢?sqlite和文件存储哪一个更快数据检索呢?sqlite和文件存储哪个更快?我认为答案很不幸,这取决于你的需要-如果你没有复杂的关系等,并且真的只需要读取字节流,那么平面文件听起来直觉上更快,但我仍然会测试,因为直觉在计算性能设计决策中可能是危险的(例如,因为常见的慢任务目标是在较低的层进行优化,最终比您预期的快得多)。这里也有一些很好的讨论: