Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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 共享首选项与SQLLite数据库_Android - Fatal编程技术网

Android 共享首选项与SQLLite数据库

Android 共享首选项与SQLLite数据库,android,Android,我正在开发一个应用程序,其中我必须存储30到50个朋友联系人、姓名、电话和密码,我有两个选项共享首选项和sql lite,所以我应该使用哪一个,这样它可以获得更少的存储空间,不会浪费太多内存,在搜索任何联系人或项目时,哪一个会更快?SQLite(数据类型复杂,数据量大) 大量相同的结构化数据应该存储在SQLite数据库中,因为数据库是为此类数据设计的 由于数据是由数据库组织和管理的,所以可以使用查询语言(如SQL)对其进行查询,以获得符合特定条件的数据子集 这使得在数据中搜索成为可能。当然,管理

我正在开发一个应用程序,其中我必须存储30到50个朋友联系人、姓名、电话和密码,我有两个选项共享首选项和sql lite,所以我应该使用哪一个,这样它可以获得更少的存储空间,不会浪费太多内存,在搜索任何联系人或项目时,哪一个会更快?

SQLite(数据类型复杂,数据量大)

大量相同的结构化数据应该存储在SQLite数据库中,因为数据库是为此类数据设计的

由于数据是由数据库组织和管理的,所以可以使用查询语言(如SQL)对其进行查询,以获得符合特定条件的数据子集

这使得在数据中搜索成为可能。当然,管理和搜索大型数据集会影响性能,因此从数据库中读取数据可能比从共享引用中读取数据慢。

SharedReferences*(数据很小,数据是前置类型,您不想与用户共享)*

SharedReferences是一个键/值存储,您可以在其中以特定键保存数据

要从存储中读取数据,您必须知道数据的密钥。这使得读取数据非常容易


但是,存储少量数据很容易,存储和读取大型结构化数据也很困难,因为您需要为每个数据定义键,此外,除非您有特定的键命名概念,否则无法在数据中真正搜索。

您肯定应该使用SQLite来处理此类数据和要求。
SharedReference用于保存首选项(因此得名),不适用于结构化数据或大量数据。此外,使用SQL,您可以对数据进行筛选和排序,例如,
select*from contact where lastname(如“A%”按firstname排序)以获取lastname以A开头的所有联系人,并按其名字排序(仅举个例子).

我认为最好的解决方案取决于应用程序现在和将来的开发方式。 如果你想开发一款在未来无法更改的应用程序(例如联系人必须是姓名、电话和密码),你可以使用“快速且肮脏”的解决方案,在共享首选项上保存一个键值集,并且不会浪费任何时间。 但是,如果信息可以更改,应用程序可以有一些改进,那么创建对象联系人和数据结构来管理它会更有用

如果联系人只有几个号码,您就不关心性能。50条记录直接访问用户id在SQLite上有很好的性能。

SQLite(数据类型复杂,数据量大)


SharedReferences(数据很小,数据是前置类型,您不想与用户共享)共享首选项是维护数据以便轻松存储和获取的最佳选项。但是,一旦我们从“设置”菜单中清除该应用程序的数据,我们将丢失该应用程序的所有共享首选项。如果我错了,请纠正我


谢谢。

没错,我已经多次使用共享首选项解决这类问题,与使用SQLite处理少量数据相比,我变得更容易。列出内容,突出重点。这会让你的答案更完美。