鸿蒙开发中:首选项(Preferences)和长连接(PersistentStorage)的区别

发布于:2024-04-26 ⋅ 阅读:(23) ⋅ 点赞:(0)

Preferences:可看做是配置项,为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。Preferences中的数据会被缓存在内存中,因此它可以获得更快的存取速度

PersistentStorage:提供持久性的数据存储,数据在设备上保持不变,即使应用关闭或设备重启。PersistentStorage将选定的AppStorage属性保留在设备磁盘上。PersistentStorage的持久化变量最好是小于2kb的数据,不要大量的数据持久化,因为PersistentStorage写入磁盘的操作是同步的,大量的数据本地化读写会同步在UI线程中执行,影响UI渲染性能。

在鸿蒙开发中,首选项(Preferences)和长连接(PersistentStorage)都是用于存储数据的方式,它们的详细区别和作用如下:

  • Preferences:通常用于保存应用的配置信息。数据通过文本的形式保存在设备中,应用使用过程中会将文本中的数据全量加载到内存中,所以访问速度快、效率高,但不适合需要存储大量数据的场景。Preferences会随着存放的数据量越多而导致应用占用的内存越大,因此,Preferences不适合存放过多的数据,适用的场景一般为应用保存用户的个性化设置(字体大小,是否开启夜间模式)等。

  • -PersistentStorage:提供持久性的数据存储,数据在设备上保持不变,即使应用关闭或设备重启。PersistentStorage将选定的AppStorage属性保留在设备磁盘上。PersistentStorage的持久化变量最好是小于2kb的数据,不要大量的数据持久化,因为PersistentStorage写入磁盘的操作是同步的,大量的数据本地化读写会同步在UI线程中执行,影响UI渲染性能。如果开发者需要存储大量的数据,建议使用数据库api。

总的来说,Preferences适用于存储小型配置项数据,而PersistentStorage适用于存储需要在应用关闭或设备重启后仍然保留的数据。

数据持久化方案

LocalStorage和AppStorage都是运行时的内存,如果应用退出再次启动后,依然能保存选定的结果

就需要用到PersistentStorage,此对象的作用是持久化存储选定的AppStorage属性

UI和业务逻辑不直接访问PersistentStorage中的属性,所有属性访问都是对AppStorage的访问,AppStorage中的更改会自动同步到PersistentStorage