介绍
鸿蒙系统的核心特性之一是“分布式能力”,支持同一款应用在多设备(手机、平板、智慧屏、手表、车机等)间无缝同步数据,其核心依托 分布式数据管理、鸿蒙数据服务及分布式文件系统等能力,实现数据“一次写入、多端同步”。
例子
当 设备1 上的 应用A 在 分布式数据库 中增、删、改数据后,设备2 上的 应用A 也可以获取到该数据库变化。
可在分布式图库、备忘录、联系人、文件管理器等场景中使用。
应用场景
- 应用配置同步:手机上修改的应用主题、字体大小、登录状态,自动同步到平板/车机的同款应用;
- 内容进度同步:阅读类应用的书籍阅读进度、笔记,同步到平板继续阅读;
- 轻量业务数据同步:待办清单、收藏列表、运动数据(手表↔手机);
- 大文件同步:手机拍摄的照片,同步到平板的编辑应用中直接编辑。
技术支撑
鸿蒙跨设备数据同步的底层依赖以下核心技术,确保同步的稳定性和安全性:
1. 分布式软总线
作为设备间的“通信底座”,实现多设备的自动发现、低功耗连接(支持Wi-Fi、蓝牙、近场通信),为数据同步提供高速、稳定的传输通道,无需开发者关注底层通信协议。
2. 分布式账号体系
基于鸿蒙“超级终端”的同一华为账号绑定,只有登录同一账号的设备,才能实现应用数据自动同步;同时支持设备权限管控(如仅同步到信任设备)。
3. 分布式数据持久化
- 分布式KV存储:键值对形式的轻量存储,支持跨设备同步,API极简,适配轻量数据(如应用设置、收藏列表);
- 分布式文件系统:支持大文件(如图片、视频、文档)的跨设备同步,可通过
DistributedFileSystemAPI访问其他设备的文件。
4. 数据冲突解决
系统内置冲突策略:
- 基础策略:最后写入胜出(LWW)、按字段合并;
- 自定义策略:开发者可通过监听数据变更事件,自定义冲突解决逻辑(如合并多设备的编辑内容)。
一致性。
分布式数据库一致性可以分为强一致性、弱一致性和最终一致性。
强一致性:是指某一设备成功增、删、改数据后,组网内任意设备可立即读取数据获得更新后的值。
弱一致性:是指某一设备成功增、删、改数据后,组网内设备可能读取到本次更新后的数据,也可能读取不到,不能保证在多长时间后每个设备的数据一定是一致的。
最终一致性:是指某一设备成功增、删、改数据后,组网内设备可能读取不到本次更新后的数据,但在某个时间窗口之后组网内设备的数据能够达到一致状态。
因为移动终端设备的 不常在线、以及无中心的特性,所以同应用跨设备数据同步 不支持强一致性,只支持最终一致性。
跨设备同步访问控制机制
数据跨设备同步时,数据管理基于 数据安全标签 和 设备安全等级 进行 访问控制。
规则为,在 本设备 的 数据安全标签 不高于 对端 设备的设备安全等级时,数据才能 从本设备同步 到 对端设备,否则不能同步。具体访问控制矩阵如下:
| 设备安全级别 | 可同步的数据安全标签 |
|---|---|
| SL1 | S1 |
| SL2 | S1~S2 |
| SL3 | S1~S3 |
| SL4 | S1~S4 |
| SL5 | S1~S4 |
类比
设备安全级别 相当于 特工级别,可同步的数据安全标签 相当于 保密文件级别,当 保密文件级别 高于 特工级别 时,特工无权查看
例子
- 手表通常为低安全的
SL1设备(即:特工级别)。 - 创建 数据安全标签 为
S1的数据库A(即:保密文件级别) - 创建 数据安全标签 为
S2-S4的数据库B(即:保密文件级别)
那么:
数据库A的数据 可以同步 到手表数据库B的数据 不能同步 到手表
总结
鸿蒙同应用跨设备数据同步的核心优势是“系统级封装”——开发者无需关注设备通信、组网等底层逻辑,通过分布式数据管理API即可快速实现自动同步;对于复杂场景,也可基于软总线和分布式通信手动定制同步策略。实际开发中,需根据数据类型(轻量KV/大文件)选择对应方案,同时兼顾同步效率、数据一致性和设备功耗。