我正在开发一个应用程序,我必须存储 30 到 50 个朋友联系人、姓名、电话和密码,我有两个选项共享首选项和 sql lite,所以我应该使用哪一个,以便它获得更少的存储空间并且不会浪费很多内存,在搜索任何联系人 no 或 item 时哪个会更快?
5 回答
SQLite (数据类型复杂,数据量大)
大量相同的结构化数据应存储在 SQLite 数据库中,因为数据库是为此类数据设计的。
由于数据是由数据库结构化和管理的,因此可以使用 SQL 等查询语言对其进行查询以获取符合特定条件的数据子集。
这使得在数据中进行搜索成为可能。当然,管理和搜索大量数据会影响性能,因此从数据库读取数据可能比从 SharedPreferences 读取数据要慢。
SharedPreferences*(数据很小,数据是premitive类型,您不想与用户共享)*
SharedPreferences 是一个键/值存储,您可以在其中将数据保存在某个键下。
要从存储中读取数据,您必须知道数据的键。这使得读取数据非常容易。
但是,尽管存储少量数据很容易,但存储和读取大型结构化数据却很困难,因为您需要为每个数据定义键,而且您无法真正在数据中进行搜索,除非您有一定的概念命名键。
对于此类数据和要求,您绝对应该使用 SQLite。SharedPreferences 旨在保存首选项(因此得名),而不是结构化数据。大量数据。同样使用 SQL,您可以过滤和排序数据,例如select * from contact where lastname like 'A%' order by firstname
获取姓氏以 A 开头的所有联系人,并按他们的名字排序(仅作为示例)。
我认为最好的解决方案取决于现在和将来必须如何开发应用程序。如果您想开发一个将来无法更改的应用程序(例如,联系人必须是姓名、电话和密码),您可以使用“快速而肮脏”的解决方案,在共享首选项中保存键值集和不要浪费任何时间。但是如果信息可以改变并且应用程序可以有一些改进......创建对象联系人和数据结构来管理它更有用。
如果联系人是几个数字,你不关心表演。直接访问用户id的50条记录在SQLite上有不错的表现。
SQLite(数据类型复杂,数据量大)
SharedPreferences(数据很小,数据是premitive类型,你不想和用户分享)
共享首选项是维护数据以轻松存储和获取的最佳选择。但是,一旦我们从设置菜单中清除了该应用程序的数据,我们就会丢失该应用程序的所有共享首选项。如果我错了,请纠正我。
谢谢。