Android 共享首选项与SQLLite数据库
我正在开发一个应用程序,其中我必须存储30到50个朋友联系人、姓名、电话和密码,我有两个选项共享首选项和sql lite,所以我应该使用哪一个,这样它可以获得更少的存储空间,不会浪费太多内存,在搜索任何联系人或项目时,哪一个会更快?SQLite(数据类型复杂,数据量大) 大量相同的结构化数据应该存储在SQLite数据库中,因为数据库是为此类数据设计的 由于数据是由数据库组织和管理的,所以可以使用查询语言(如SQL)对其进行查询,以获得符合特定条件的数据子集 这使得在数据中搜索成为可能。当然,管理和搜索大型数据集会影响性能,因此从数据库中读取数据可能比从共享引用中读取数据慢。 SharedReferences*(数据很小,数据是前置类型,您不想与用户共享)* SharedReferences是一个键/值存储,您可以在其中以特定键保存数据 要从存储中读取数据,您必须知道数据的密钥。这使得读取数据非常容易Android 共享首选项与SQLLite数据库,android,Android,我正在开发一个应用程序,其中我必须存储30到50个朋友联系人、姓名、电话和密码,我有两个选项共享首选项和sql lite,所以我应该使用哪一个,这样它可以获得更少的存储空间,不会浪费太多内存,在搜索任何联系人或项目时,哪一个会更快?SQLite(数据类型复杂,数据量大) 大量相同的结构化数据应该存储在SQLite数据库中,因为数据库是为此类数据设计的 由于数据是由数据库组织和管理的,所以可以使用查询语言(如SQL)对其进行查询,以获得符合特定条件的数据子集 这使得在数据中搜索成为可能。当然,管理
但是,存储少量数据很容易,存储和读取大型结构化数据也很困难,因为您需要为每个数据定义键,此外,除非您有特定的键命名概念,否则无法在数据中真正搜索。您肯定应该使用SQLite来处理此类数据和要求。
SharedReference用于保存首选项(因此得名),不适用于结构化数据或大量数据。此外,使用SQL,您可以对数据进行筛选和排序,例如,
select*from contact where lastname(如“A%”按firstname排序)以获取lastname以A开头的所有联系人,并按其名字排序(仅举个例子).我认为最好的解决方案取决于应用程序现在和将来的开发方式。
如果你想开发一款在未来无法更改的应用程序(例如联系人必须是姓名、电话和密码),你可以使用“快速且肮脏”的解决方案,在共享首选项上保存一个键值集,并且不会浪费任何时间。
但是,如果信息可以更改,应用程序可以有一些改进,那么创建对象联系人和数据结构来管理它会更有用
如果联系人只有几个号码,您就不关心性能。50条记录直接访问用户id在SQLite上有很好的性能。SQLite(数据类型复杂,数据量大)
SharedReferences(数据很小,数据是前置类型,您不想与用户共享)共享首选项是维护数据以便轻松存储和获取的最佳选项。但是,一旦我们从“设置”菜单中清除该应用程序的数据,我们将丢失该应用程序的所有共享首选项。如果我错了,请纠正我
谢谢。没错,我已经多次使用共享首选项解决这类问题,与使用SQLite处理少量数据相比,我变得更容易。列出内容,突出重点。这会让你的答案更完美。