鸿蒙应用开发UI基础第二十四节,如何选择开源工具存储用户首选项数据?

摘要:【学习目标】 明确PreferencesUtil单利模式的局限,掌握「多实例池」的设计思路与实现逻辑; 完成 Preferences 工具类从「单文件单例」到「多文件实例池」的核心升级; 掌握鸿蒙静态库(HAR)的创建、配置、导出、打包全流
【学习目标】 明确PreferencesUtil单利模式的局限,掌握「多实例池」的设计思路与实现逻辑; 完成 Preferences 工具类从「单文件单例」到「多文件实例池」的核心升级; 掌握鸿蒙静态库(HAR)的创建、配置、导出、打包全流程; 将升级后的「多实例池工具类」解耦封装为独立 HAR 库,实现跨项目复用; 掌握库工程规范、版本管理、接口设计、测试验证的企业级实践。 一、核心背景:上一节单例模式的局限 上一节 PreferencesUtil 是单例模式,仅能操作一个固定的 Preferences 文件,在复杂业务场景下存在明显局限: 局限点 具体问题 单文件存储 所有业务配置(用户信息/应用配置/缓存数据)挤在一个文件,易出现键名冲突 无法隔离业务数据 不同模块/业务的配置无法隔离,删除/修改数据时易误操作其他业务的配置 复用性差 工具类与业务工程耦合,无法直接迁移到其他项目 扩展能力弱 新增存储文件需修改工具类源码,不符合「开闭原则」 本节核心解决思路: 升级架构:从「单例」升级为「多实例池」,每个存储文件对应一个独立实例; 解耦封装:剥离业务依赖,封装为独立 HAR 库; 简化使用:保留「静态快捷方法+实例方法」双调用模式,兼顾便捷性与灵活性。 二、工程结构(API18+ 核心目录) PreferenceLibDemo/ # 工程根目录 ├── AppScope/ # 应用全局配置目录 ├── entry/ # 主应用模块(用于验证HAR库功能) ├── preferences/ # HAR库模块(核心封装模块) │ ├── src/ │ │ ├── main/ │ │ │ ├── ets/ │ │ │ │ ├── components/ # HAR库组件目录(本节暂未使用) │ │ │ │ ├── utils/ # 工具类核心目录 │ │ │ │ │ ├── PreferencesConfig.ets # 类型/枚举/接口/常量定义 │ │ │ │ │ └── PreferencesUtil.ets # 多实例池核心工具类 │ │ │ │ ├── resources/ # HAR库资源目录 │ │ │ │ └── module.json5 # 模块基础配置 │ │ ├── ohosTest/ # 鸿蒙测试目录 │ │ └── test/ # 单元测试目录 │ ├── build-profile.json5 # HAR库构建版本配置 │ ├── consumer-rules.txt # 编译依赖该模块的应用时生效 作用于依赖方的混淆流程 │ ├── hvigorfile.ts # HAR库构建脚本 │ ├── Index.ets # HAR库对外统一导出入口 │ ├── obfuscation-rules.txt # 编译当前模块时生效 | 仅作用于自身代码 │ └── oh-package.json5 # 重要内容:HAR库核心配置(元信息/依赖/兼容版本) ├── build-profile.json5 # 工程级构建配置 ├── hvigorfile.ts # 工程级构建脚本 ├── oh-package.json5 # 工程根级依赖配置 └── oh-package-lock.json5 # 工程依赖版本锁定文件 2.1 静态库创建 在 DevEco Studio 中创建 HAR 库模块步骤: 右键工程根目录 → New → Module; 选择 Static Library(静态库)→ 填写模块名称 preferences 完成创建; 手动在 preferences/src/main/ets/ 下创建 utils 目录,用于存放核心工具类。
阅读全文