应用笔记 · 2025年6月25日

鸿蒙HarmonyOS本地信息持久化之Preferences首选项存储方法、性能及JSON扩展

HarmonyOS的用户首选项模块(Preferences)可以支持简单数据的本地化存储,它被保存在APP的沙盒中,APP重启不会清空。

Preferences当前性能较优,正常情况下不会造成卡顿,对应用流畅度也不会造成影响

当前更推荐同步方法,相比异步,同步更快(异步频繁调用可能出现排队等情况)

1、getPreferencesSync方法是需要把文件从设备读取到内存,文件不是特别大的话,读取不会有太大影响。

2、getSync是直接从内存中读取,基本不会有什么耗时

3、putSync方法同理。调用flush的时候,才会持久化到文件中

如果数据过大时,推荐使用关系型数据库实现数据持久化

参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/data-persistence-by-rdb-store-V5

Preferences默认支持存储基本数据类型(如字符串、数字、布尔值等),但不直接支持JSON对象存储。可以通过将JSON对象序列化为字符串后存储,读取时再反序列化为JSON对象。以下是具体实现步骤:

1. 导入模块
在项目中导入preferences模块:

或者使用@kit.ArkData模块:

2. 获取Preferences实例
通过getPreferences方法获取Preferences实例,指定存储的文件名:

3. 封装JSON数据存储方法
创建一个类或工具函数来封装JSON数据的存储和读取逻辑:

4. 使用封装的类
实例化JsonPreferenceManager类,并使用封装的方法存储和读取JSON数据:

注意事项
在存储JSON对象时,需要先将其序列化为字符串。
在读取时,需要判断是否为JSON字符串,然后进行反序列化。
由于Preferences存储的大小有限,建议不要存储过大的JSON数据。