Skip to content

存储方案对比与选择

鸿蒙多种存储方案,面试高频:根据场景选择正确的存储方案。


1. 存储方案全景

鸿蒙存储体系
├── 键值存储
│   ├── Preferences(小配置)
│   └── KV-Store(分布式同步)
├── 关系型数据库
│   └── RDB(SQLite)
├── 文件存储
│   ├── 内部存储(沙箱)
│   ├── 外部存储(公共目录)
│   └── rawfile / resource
├── 安全存储
│   └── AssetStore(卸载保留)
└── 缓存
    ├── LruCache(内存)
    └── 多级缓存

2. 决策树

2.1 如何选择存储方案

需要存储数据?
├─ 简单的键值配置?
│   └─ 单设备 → Preferences
│   └─ 多设备同步 → KV-Store
├─ 结构化数据?
│   └─ 关系型查询 → RDB
│   └─ 大量数据 → RDB(百万级)
├─ 大文件?
│   └─ 图片/视频 → 文件存储
│   └─ 大文件传输 → request 代理
├─ 敏感数据?
│   └─ 应用卸载后保留 → AssetStore
│   └─ 密钥管理 → KeyStore
├─ 缓存?
│   └─ 频繁访问 → LruCache(内存)
│   └─ 重启恢复 → KV-Store
└─ 其他
    └─ 图片缓存 → LruCache + 文件缓存

2.2 场景速查表

场景推荐方案原因
用户偏好设置Preferences简单 K-V
登录 TokenAssetStore卸载保留
用户列表RDB结构化、查询
分布式配置KV-Store多设备同步
图片文件存储容量大
图片缓存LruCache内存快
密码AES + KeyStore安全
应用状态KV-Store持久化+同步
临时数据内存缓存快,不用持久化

3. 详细对比表

方案类型容量持久化分布式速度加密
PreferencesK-V≤1MB⚡⚡
KV-StoreK-V⚡⚡
RDB关系型
文件存储文件
AssetStore安全✅卸载后
LruCache内存⚡⚡⚡

4. 面试高频考点

Q1: 鸿蒙有哪些存储方案?

回答:Preferences(K-V配置)、KV-Store(分布式)、RDB(关系型数据库)、文件存储(沙箱/外部)、AssetStore(安全卸载保留)、缓存(LruCache)。

Q2: 如何选择合适的存储方案?

回答:根据场景选:简单配置用 Preferences,分布式同步用 KV-Store,结构化数据用 RDB,大文件用文件存储,敏感数据用 AssetStore,频繁访问用 LruCache 缓存。

Q3: Preferences vs KV-Store?

回答:Preferences 单设备简单 K-V;KV-Store 支持分布式同步。


🐱 小猫提示:存储方案选择记住 "场景→方案对应关系。Preferences 小配置、KV-Store 分布式、RDB 结构化、AssetStore 敏感、LruCache 缓存"。**