Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 17-Mar-2025 | - | ||||
figures/ | H | 17-Mar-2025 | - | |||
frameworks/ | H | 17-Mar-2025 | - | 15,581 | 12,208 | |
interfaces/ | H | 17-Mar-2025 | - | 2,092 | 694 | |
test/ | H | 17-Mar-2025 | - | 11,735 | 8,372 | |
.clang-format | H A D | 17-Mar-2025 | 3.4 KiB | 188 | 112 | |
.gitattributes | H A D | 17-Mar-2025 | 631 | 16 | 15 | |
.gitignore | H A D | 17-Mar-2025 | 73 | 7 | 7 | |
LICENSE | H A D | 17-Mar-2025 | 9.9 KiB | 177 | 150 | |
OAT.xml | H A D | 17-Mar-2025 | 4.1 KiB | 66 | 13 | |
README_zh.md | H A D | 17-Mar-2025 | 2.6 KiB | 57 | 36 | |
bundle.json | H A D | 17-Mar-2025 | 4.3 KiB | 115 | 114 | |
preferences.gni | H A D | 17-Mar-2025 | 1.1 KiB | 27 | 19 |
README_zh.md
1# 首选项(Preferences)部件 2 3## 简介 4 5**首选项(Preferences)** 主要提供轻量级Key-Value操作,支持本地应用存储少量数据,数据存储在本地文件中,同时也加载在内存中,所以访问速度更快,效率更高。首选项提供非关系型数据存储,不宜存储大量数据,经常用于操作键值对形式数据的场景。 6 71. 本模块提供首选项的操作类,应用通过这些操作类完成首选项操作。 82. 借助getPreferences,可以将指定文件的内容加载到Preferences实例,每个文件最多有一个Preferences实例,系统会通过静态容器将该实例存储在内存中,直到主动从内存中移除该实例或者删除该文件。 93. 获取Preferences实例后,可以借助Preferences类的函数,从Preferences实例中读取数据或者将数据写入Preferences实例,通过flush将Preferences实例持久化。 10 11以下是几个基本概念: 12 13- **Key-Value数据库** 14 15 一种以键值对存储数据的一种数据库。Key是关键字,Value是值。 16 17- **非关系型数据库** 18 19 区别于关系数据库,不保证遵循ACID(Atomic、Consistency、Isolation及Durability)特性,不采用关系模型来组织数据,数据之间无关系,扩展性好。 20 21- **偏好数据** 22 23 用户经常访问和使用的数据。 24 25**图 1** 首选项部件架构图 26 27 28 29用户程序通过JS接口调用首选项部件,首选项部件读写对应的数据文件 30 31## 目录 32 33``` 34//foundation/distributeddatamgr/preferences 35├── frameworks # 框架层代码 36│ └── js # JS API的实现 37│ │ └── napi # napi代码实现 38│ └── native # 内部接口实现 39├── interfaces # 接口代码 40│ └── inner_api # 内部接口声明 41└── test # 测试用例 42 ├── js # js用例 43 └── native # C++用例 44``` 45## 约束 46 47- Key键为String类型,要求非空且长度不超过1024个字符。 48 49- 如果Value值为String类型,可以为空但是长度不超过16 * 1024 * 1024个字符。 50 51- 存储的数据量应该是轻量级的,建议存储的数据不超过一万条,否则会在内存方面产生较大的开销。 52 53## 相关仓 54 55- [分布式数据管理子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md) 56 57- [**distributeddatamgr\_preferences**](https://gitee.com/openharmony/distributeddatamgr_preferences/blob/master/README_zh.md)