鸿蒙 NEXT 开发 - 应用数据持久化之用户首选项
1. 应用数据持久化
应用数据持久化,是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象,存储介质上的数据形态可能是文本、数据库、二进制文件等。
HarmonyOS 标准系统支持典型的存储数据形态,包括用户首选项、键值型数据库、关系型数据库。
用户首选项(Preferences):通常用于保存应用的配置信息。数据通过文本的形式保存在设备中,应用使用过程中会将文本中的数据全量加载到内存中,所以访问速度快、效率高,但不适合需要存储大量数据的场景。
键值型数据库(KV-Store):一种非关系型数据库,其数据以“键值”对的形式进行组织、索引和存储,其中“键”作为唯一标识符。适合很少数据关系和业务关系的业务数据存储,同时因其在分布式场景中降低了解决数据库版本兼容问题的复杂度,和数据同步过程中冲突解决的复杂度而被广泛使用。相比于关系型数据库,更容易做到跨设备跨版本兼容。
关系型数据库(RelationalStore):一种关系型数据库,以行和列的形式存储数据,广泛用于应用中的关系型数据的处理,包括一系列的增、删、改、查等接口,开发者也可以运行自己定义的 SQL 语句来满足复杂业务场景的需要。
2. 应用数据持久化-用户首选项
2.1 概述
用户首选项为应用提供 Key-Value 键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。当用户希望有一个全局唯一存储的地方,可以采用用户首选项来进行存储。Preferences 会将该数据缓存在内存中,当用户读取的时候,能够快速从内存中获取数据,当需要持久化时可以使用 flush 接口将内存中的数据写入持久化文件中。Preferences 会随着存放的数据量越多而导致应用占用的内存越大,因此,Preferences 不适合存放过多的数据,也不支持通过配置加密,适用的场景一般为应用保存用户的个性化设置(字体大小,是否开启夜间模式)等。
2.2 约束限制
首选项无法保证进程并发安全,会有文件损坏和数据丢失的风险,不支持在多进程场景下使用。
Key 键为 string 类型,要求非空且长度不超过 1024 个字节。
如果 Value 值为 string 类型,请使用 UTF-8 编码格式,可以为空,不为空时长度不超过 16 * 1024 * 1024 个字节。
内存会随着存储数据量的增大而增大,所以存储的数据量应该是轻量级的,建议存储的数据不超过一万条,否则会在内存方面产生较大的开销。
2.3 常用方法
参考华为官方文档:文档中心
注意:记得用真机或者模拟器运行
2.3.1 封装用户首选项工具类
注意:PreferencesUtil 文件结尾是 ts 不是 ets
2.3.2 初始化用户首选项
在 EntryAbility 文件中初始化用户首选项

编辑
2.3.3 使用用户首选项
注意:用户首选项存的值全局都可以获取到
版权声明: 本文为 InfoQ 作者【东林知识库】的原创文章。
原文链接:【http://xie.infoq.cn/article/3033c7bd29e56cafa2dce81f2】。文章转载请联系作者。
评论