想咨询一下,鸿蒙开发中PersistentStorage与Preferences的异同点是什么?
想咨询一下,鸿蒙开发中PersistentStorage与Preferences的异同点是什么?
相同点
数据持久化:两者都提供了数据持久化的功能,即数据在设备上的存储不会因为应用的关闭或设备的重启而丢失。
不同点
1.存储方式和目的
Preferences:
主要用于配置应用程序的设置和偏好,如用户的个性化设置(字体大小、是否开启夜间模式等)。
提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据。
数据以文本形式保存在设备中,应用使用过程中会将文本中的数据全量加载到内存中,因此访问速度快、效率高。
PersistentStorage:
提供更为持久的数据存储能力,通常与AppStorage配合使用,选择AppStorage中需要持久化的数据写入磁盘。
数据在设备上保持不变,即使应用关闭或设备重启,也能确保数据的连续性。
主要用于存储需要在应用关闭或设备重启后仍然保留的数据。
2.数据大小和性能影响
Preferences:
存储的数据量不宜过多,因为数据会缓存在内存中,过多的数据会占用大量内存资源。
适用于小型配置项数据的存储。
PersistentStorage:
持久化变量最好是小于2kb的数据,不建议进行大量的数据持久化。
因为PersistentStorage写入磁盘的操作是同步的,大量的数据本地化读写会同步在UI线程中执行,影响UI渲染性能。
3.使用场景
Preferences:
适用于存储用户的个性化设置、应用配置等轻量级数据。
PersistentStorage:
适用于需要跨应用重启或设备重启后仍然保留的数据,如用户的登录状态、应用状态等。
4.访问方式
Preferences:
提供了较为简单的API接口,方便应用进行数据的读取和写入。
PersistentStorage:
通常需要通过AppStorage来间接访问,实现数据的持久化存储。
1 回答414 阅读
1 回答225 阅读
161 阅读
不同点: