轻量级偏好数据库主要提供轻量级 Key-Value 操作,支持本地应用存储少量数据,数据存储在本地文件中,同时也加载在内存中的,所以访问速度更快,效率更高。轻量级偏好数据库属于非关系型数据库,不宜存储大量数据,经常用于操作键值对形式数据的场景。
基本概念
- Key-Value 数据库
一种以键值对存储数据的一种数据库,类似 Java 中的 map。Key 是关键字,Value 是值。
- 非关系型数据库
区别于关系数据库,不保证遵循 ACID(Atomic、Consistency、Isolation及Durability)特性,不采用关系模型来组织数据,数据之间无关系,扩展性好。
- 偏好
数据
用户经常访问和使用的数据。
运作机制
- 本模块提供偏好型数据库的操作类,应用通过这些操作类完成数据库操作。
- 借助 DatabaseHelper API,应用可以将指定文件的内容加载到 Preferences 实例,每个文件最多有一个 Preferences 实例,系统会通过静态容器将该实例存储在内存中,直到应用主动从内存中移除该实例或者删除该文件。
- 获取到文件对应的 Preferences 实例后,应用可以借助 Preferences API,从 Preferences 实例中读取数据或者将数据写入 Preferences 实例,通过 flush 或者 flushSync 将 Preferences 实例持久化。
图1 轻量级偏好数据库运作机制
约束与限制
- Key 键为 String 类型,要求非空且大小不超过 80 个字符。
- 如果 Value 值为 String 类型,可以为空但是长度不超过 8192 个字符。
- 存储的数据量应该是轻量级的,建议存储的数据不超过一万条,否则会在内存方面产生较大的开销。