HarmonyOS APP《画伴梦工厂》开发第60篇-分布式软总线2.0——多设备协同新范式

第7.15篇:分布式软总线 2.0------多设备协同新范式

难度 :⭐⭐⭐ 高级

前置知识 :第 4.4 篇 跨设备分享(systemShare 集成)

涉及源文件products/default/src/main/ets/pages/HarmonyFeaturesPage.ets


概述

在"画伴梦工厂"中,我们已经在第 4.4 篇中通过 systemShare 实现了基础的跨设备分享------用户可以将创作完成的动画视频一键发送到平板、智慧屏等设备上观看。然而,"分享"本质上是一次性传输:将文件从设备 A 发送到设备 B,传输完成后,两个设备各自为政。

有没有一种能力,可以让设备之间不再是"发完即止"的短暂关系,而是持续协同、实时互动

这正是 分布式软总线 2.0(Distributed Soft Bus 2.0) 要解决的核心问题。作为 HarmonyOS 7 最底层的通信基础设施,分布式软总线 2.0 将设备间的连接延迟压缩至 8 毫秒以内 ,支持单链路 最多 16 台设备同时协同 ,并通过设备虚拟化技术将每台设备的硬件能力(摄像头、屏幕、扬声器、传感器等)抽象为可共享的资源池。

对于"画伴梦工厂"而言,这意味着------家长可以拿出平板,将平板的摄像头借给手机用于拍摄画作;两个孩子可以在各自的平板上同时绘制同一幅画,实时看到对方的笔触;创作好的动画可以在手机、平板、智慧屏三台设备上同步播放,形成环绕式观影体验。

本文将深入剖析分布式软总线 2.0 的核心架构与技术突破、与第 4.4 篇 systemShare 的本质差异、设备虚拟化与 A2UI 协议的原理,以及如何在项目中落地多设备协同功能。


一、分布式软总线 2.0:核心指标与技术突破

1.1 关键指标

分布式软总线 2.0 在 HarmonyOS 7(HDC 2026 发布)中完成了从底层到上层的全面重构,核心指标实现了质的飞跃:

指标 HarmonyOS 6 HarmonyOS 7(软总线 2.0) 提升幅度
端到端通信延迟 20~45 ms ≤ 8 ms 75%+ 降低
最大组网设备数 8 台 16 台 2 倍
组网效率 基础 提升 40% 显著
并发传输速率 ~80 MB/s ≥ 250 MB/s 3 倍+
设备发现时间 ~500 ms < 200 ms 60%+ 缩短
功耗(同负载) 基准 降低 40% 大幅

这些数字意味着什么?8 毫秒的延迟,人类完全无法感知(一次眨眼约 200 毫秒)。这意味着跨设备的操作可以像操作本地设备一样顺畅------在平板上绘画时,笔触实时同步到手机屏幕,中间隔着 8 毫秒的传输延迟,用户完全感觉不到"延迟"的存在。

1.2 从 HarmonyOS 6 到 7:三大性能跃升

跃升一:更快

从第 4.4 篇我们知道,基于 systemShare 的跨设备分享背后依赖的就是分布式软总线。在 HarmonyOS 6 时代,软总线延迟在 20~45 ms 之间,对于文件传输(如分享视频)已经完全够用。但在 HarmonyOS 7 的软总线 2.0 中,延迟被压到 8 ms 以内,这打开了实时交互的大门------从"传输文件"到"同步操作"

跃升二:更可靠

软总线 2.0 引入了多链路聚合技术。当设备间同时存在 Wi-Fi、蓝牙、星闪(NearLink)等多条物理链路时,系统会在链路层将它们聚合为一条虚拟通道。即使某一条链路出现干扰或丢包,数据会自动通过其他链路重传,应用层完全无感知。

跃升三:更低功耗

通过引入智能休眠与唤醒机制,软总线 2.0 在待机状态下的功耗相比 HarmonyOS 6 降低了约 40%。后台心跳检测的频率根据设备间的距离和信号质量动态调节------近距离强信号下降低检测频率以省电;远距离弱信号下提高检测频率以保连接。


二、技术架构:三阶段极速组网

分布式软总线 2.0 的组网流程分为三个阶段,整个流程可在 200 毫秒内完成

2.1 第一阶段:异构网络融合发现(< 50 ms)

软总线 2.0 同时监听多种物理通道,以最大化发现速度和可靠性:

物理通道 角色 优势
蓝牙 BLE 5.0 低功耗广播设备身份标识 功耗极低,始终在线
Wi-Fi 探测帧 同 AP 设备间快速交换能力信息 延迟低,可携带丰富元数据
星闪(NearLink) 首次碰一碰配对 厘米级空间感知,建立初始信任
NFC 快速触碰配对 零配置,碰触即连

当手机靠近已登录同一华为账号的平板时,软总线通过 BLE 广播携带设备 ID 和公钥指纹。平板接收到广播后,与本地的可信设备列表比对------如果匹配,立即进入下一阶段。

2.2 第二阶段:零感安全认证(< 80 ms)

传统设备配对需要用户输入 PIN 码或点击确认弹窗,体验割裂且繁琐。软总线 2.0 利用设备证书体系实现了零用户交互的自动认证:

  1. 预置证书:每台设备出厂时预置唯一设备证书(由华为 PKI 体系签发)
  2. 首次绑定:设备登录同一华为账号时,通过安全通道交换公钥并关联用户身份
  3. 后续连接:双方直接使用证书进行双向 TLS 握手,完成身份校验

整个认证过程使用国密 SM2/SM4 算法加密传输,通信内容端到端加密。即使攻击者截获了握手数据包,也无法伪造设备身份或解密通信内容。

2.3 第三阶段:最优传输通道协商(< 70 ms)

认证完成后,软总线根据任务类型动态选择最优物理链路:

任务类型 优先通道 带宽 延迟
音频流(实时语音) 星闪 / BLE Audio 2~12 Mbps < 5 ms
视频投屏(4K) Wi-Fi 6(6 GHz) ~800 Mbps ~15 ms
实时绘画同步 星闪(低功耗模式) 12 Mbps < 3 ms
大文件传输 Wi-Fi + 蓝牙聚合 > 1 Gbps ---
传感器数据 星闪(超低功耗) 1~12 Mbps < 1 ms

若环境变化(如用户离开 Wi-Fi 覆盖区走到户外),软总线可无缝切换至蜂窝网络,保持已建立的会话不中断。这种"多链路冗余 + 动态切换"能力是软总线 2.0 相较于前代的关键升级。


三、设备虚拟化:硬件能力共享

3.1 虚拟化核心思想

分布式软总线 2.0 最革命性的能力是设备虚拟化(Device Virtualization)。它将每台设备的物理硬件抽象成虚拟资源,通过软总线暴露给网络中的其他设备使用。

复制代码
┌─────────────────────────────────────────────────────────┐
│                    虚拟硬件资源池                          │
├─────────────┬─────────────┬─────────────┬───────────────┤
│  手机        │   平板       │   智慧屏     │   手表         │
│  ┌────────┐ │  ┌────────┐ │  ┌────────┐ │  ┌────────┐   │
│  │摄像头   │ │  │屏幕    │ │  │扬声器   │ │  │传感器   │   │
│  │ NPU    │ │  │触控笔  │ │  │显示面板 │ │  │心率计   │   │
│  │ 屏幕   │ │  │摄像头  │ │  │麦克风   │ │  │GPS     │   │
│  │ ...    │ │  │ ...    │ │  │ ...    │ │  │ ...    │   │
│  └────────┘ │  └────────┘ │  └────────┘ │  └────────┘   │
└─────────────┴─────────────┴─────────────┴───────────────┘
         ▲                                               ▲
         │           分布式软总线 2.0                      │
         └───────────────────────────────────────────────┘
                                 │
                    ┌────────────┴────────────┐
                    │   统一虚拟化 API 层        │
                    │  @kit.DistributedKit     │
                    └─────────────────────────┘

3.2 摄像头共享

在"画伴梦工厂"中,一个典型的场景是:家长用手机打开应用,调用平板的后置摄像头来拍摄高质量的儿童画作。

typescript 复制代码
import { distributedCamera } from '@kit.DistributedKit';

// 发现远程摄像头资源
const cameras = await distributedCamera.getRemoteCameraList();
// 返回: [{ deviceId: '平板123', cameraId: 'back_cam', resolution: '48MP' }]

// 获取远程摄像头实例
const remoteCam = await distributedCamera.createRemoteCamera({
  deviceId: '平板123',
  cameraId: 'back_cam'
});

// 将远程摄像头的画面渲染到手机端的 Image 组件中
// 所有视频流通过软总线实时传输,延迟 < 10ms
this.remoteCameraSurface = remoteCam.getSurface();

设备虚拟化的美妙之处在于:应用代码几乎不需要区分本地和远程摄像头 。开发者通过 @kit.DistributedKit 获取远程设备列表,然后像使用本地摄像头一样使用远程摄像头------软总线和虚拟化引擎在底层完成了所有差异屏蔽。

3.3 屏幕共享与投射

屏幕共享能力比 systemShare 的"文件投送"更进一步------它传输的是实时的屏幕内容流

typescript 复制代码
import { distributedScreen } from '@kit.DistributedKit';

// 将当前应用的画面投射到智慧屏
const remoteScreen = await distributedScreen.createRemoteScreen({
  targetDeviceId: '智慧屏456',
  displayMode: 'mirror'  // mirror 镜像模式 / extend 扩展模式
});

// 开始投射
await remoteScreen.startDisplay();
// 智慧屏上实时显示手机画面,延迟约 15ms(4K 分辨率下)

在"画伴梦工厂"中,可以设计这样的用户体验:孩子的画作在手机上创作完成后,一键"投屏"到智慧屏上,全家人一起观看动画播放。不同于第 4.4 篇中 systemShare 的"发送视频文件后自行播放",屏幕共享模式下手机端的操作会实时反映在智慧屏上------家长可以用手机控制播放进度、切换故事场景,智慧屏只负责显示。

3.4 从"文件传输"到"硬件共享"

维度 systemShare(第 4.4 篇) 设备虚拟化(本篇)
数据形态 文件(视频/图片/文本) 硬件能力(摄像头/屏幕/传感器)
交互模式 一次性传输 持续性实时共享
用户体验 发送 → 接收 → 查看 如同使用本地硬件
底层技术 ShareController + SharedData 分布式软总线 + 虚拟化引擎
延迟要求 秒级可接受 毫秒级实时
典型场景 分享视频到平板 借用平板摄像头拍照

四、A2UI 协议:跨设备 UI 同步

4.1 什么是 A2UI?

A2UI(Agent-to-UI) 是 HarmonyOS 7 为跨设备 UI 同步而设计的新协议。它允许一个设备上的 UI 状态变化(如滑块拖动、按钮点击、画布绘制)实时同步到其他设备的对应 UI 组件上,而无需开发者手动编写数据传输和状态同步代码。

在"画伴梦工厂"的"多设备协同绘画"场景中,A2UI 协议是核心技术支撑:

typescript 复制代码
import { a2ui } from '@kit.DistributedKit';

// 创建一个 A2UI 会话,用于同步画布状态
const session = await a2ui.createSession({
  sessionId: 'drawing_sync_001',
  // 指定参与协同的设备
  participants: ['手机789', '平板123'],
  // 同步粒度:逐笔触实时同步
  syncGranularity: 'stroke',
  // 冲突解决策略:后写胜出
  conflictResolution: 'last_write_wins'
});

// 当用户在本地画布上绘制了一笔
private onStrokeDrawn(stroke: StrokeData): void {
  // 将笔触数据通过 A2UI 同步到其他设备
  session.syncState('canvas', {
    action: 'addStroke',
    stroke: stroke
  });
}

// 接收来自远程设备的 UI 状态同步
session.on('stateChanged', (source: string, state: SyncState) => {
  if (state.action === 'addStroke') {
    // 将远程笔触渲染到本地画布
    this.canvasRenderer.applyRemoteStroke(state.stroke);
  }
});

4.2 A2UI vs. 传统 WebSocket

维度 WebSocket 自定义方案 A2UI 协议
连接建立 需手动实现握手、鉴权 自动基于软总线可信连接
冲突解决 需自研 CRDT 或 OT 算法 内置 3 种冲突策略
延迟 受应用层协议栈影响 基于软总线 8ms 原生通道
设备发现 需自行实现 自动发现 + 安全认证
开发量 数周至数月 数行代码

4.3 多设备绘画的冲突解决

当两个孩子同时在各自的平板上绘制同一幅画时,必然出现"冲突"------同一位置同时绘制了不同内容。A2UI 内置了三种冲突解决策略:

策略 说明 适用场景
last_write_wins 后写入的数据覆盖先写入的 自由涂鸦,允许覆盖
transform 基于操作变换(OT)合并 文档协作,文本编辑
branch 保留分支,人工选择合并 精细绘画,保留各自版本

在"画伴梦工厂"中,默认使用 last_write_wins 策略------儿童绘画场景中,覆盖是自然的表达方式。


五、与 HarmonyFeaturesPage 的集成

5.1 作品跨设备流转功能卡

在项目的 HarmonyFeaturesPage.ets 中,"全场景一体协同"板块展示的就是基于分布式软总线能力的"作品跨设备流转"功能。该板块包含三个核心交互要素:

1. 可信设备选择

typescript 复制代码
const TRUSTED_DEVICES: DeviceItem[] = [
  { name: '手机', desc: '拍照识别与快速创作' },
  { name: '平板', desc: '大画布涂鸦和家长共创' },
  { name: '智慧屏', desc: '家庭共享播放动画' }
];

这三台设备恰好代表了三类典型的端侧角色------手机 是便携的识别与创作入口,平板 是精细绘画的交互界面,智慧屏是家庭共享的展示终端。分布式软总线将它们连接成一个"创作-协作-展示"的完整闭环。

2. 跨设备流转进度指示

typescript 复制代码
@State private syncProgress: number = 68;

Progress({ value: this.syncProgress, total: 100, type: ProgressType.Linear })
  .width('100%')
  .height(8)
  .color(this.brandPurple)
  .backgroundColor('#ECECF6')
  .borderRadius(6)

进度条模拟了作品数据在各设备间的同步状态。在实际实现中,这个进度可以通过 distributedKVStore 的同步事件驱动更新------当分布式数据库同步完成后,进度条自动推进到 100%。

3. 流转任务触发

typescript 复制代码
Button('生成跨设备流转任务')
  .onClick(() => {
    this.syncProgress = 100;
    this.noticeText = '作品草稿已准备跨设备协同,可在信任设备间流转';
  })

这个按钮是跨设备协同的入口。点击后,应用可以将当前作品的数据结构和状态发布到分布式数据库中,其他信任设备上的应用实例会收到同步通知,自动下载并展示作品。

5.2 分布式 KVStore 集成

HarmonyFeaturesPage 中,capability 字段标注为 SystemCapability.DistributedDataManager.KVStore.Core,这指向了 HarmonyOS 的 分布式 KV 数据库(distributedKVStore)------基于软总线实现的数据同步层:

typescript 复制代码
import { distributedKVStore } from '@kit.DistributedDataKit';

// 获取分布式数据库单例
const kvManager = distributedKVStore.createKVManager({
  context: getContext(),
  bundleName: 'com.dreamworks.drawing'
});

// 创建分布式 KV 存储(自动跨设备同步)
const kvStore = await kvManager.getKVStore('works_sync_store', {
  createIfMissing: true,
  // 设备间自动同步
  syncMode: distributedKVStore.SyncMode.PUSH_PULL
});

// 写入作品数据(自动同步到其他设备)
await kvStore.put('work_001', JSON.stringify({
  title: '我的小汽车',
  strokes: [...],   // 笔触数组
  story: '一辆红色的小汽车在公路上...',
  lastModified: Date.now()
}));

// 监听远程数据变更(其他设备的更新)
kvStore.on('dataChange', (change) => {
  if (change.key === 'work_001') {
    const updatedWork = JSON.parse(change.value);
    this.refreshWorkDisplay(updatedWork);
  }
});

5.3 canIUse 能力检测

HarmonyFeaturesPage 中使用 canIUse(item.capability) 动态检测设备是否支持分布式能力:

typescript 复制代码
Text(canIUse(item.capability) ? '已支持' : '待适配')
  .fontSize(11)
  .fontColor(canIUse(item.capability) ? '#2F9E44' : '#A06A00')

这体现了鸿蒙应用开发的最佳实践------永远不要假定设备能力 。分布式软总线虽然强大,但并非所有设备都支持全部能力。通过 canIUse 接口动态检测,可以在不支持分布式协同的设备上优雅降级,展示"待适配"状态而非直接报错。


六、应用场景

6.1 手机作为平板的摄像头

在"画伴梦工厂"中,儿童使用平板进行大画布涂鸦时,如果需要拍摄真实物体的参考照片,无需起身寻找手机------通过设备虚拟化,平板直接调用手机的摄像头取景:

  1. 平板上的应用检测到"需要拍照"场景
  2. 自动发现附近的手机设备,请求摄像头共享
  3. 手机摄像头画面实时出现在平板的取景框中
  4. 儿童在平板上点击快门,照片通过软总线传输到平板
  5. 照片自动导入画布作为临摹参考

整个过程中,儿童只需要在平板上完成所有操作,手机就像一个"外接摄像头"被平板调用。

6.2 多设备实时协同绘画

这是分布式软总线 2.0+ A2UI 协议最高价值的场景:

  • 孩子 A 在平板上画了一棵树
  • 孩子 B 在另一台平板上画了一朵云
  • 两幅画作通过 A2UI 协议实时合并
  • 两个孩子在各自的屏幕上看到对方每一笔的实时出现
  • 画作完成后,一键同步到智慧屏上全家观看

这种"协同创作"的体验与第 4.4 篇中的"分享播放"有本质区别------不再是"我画完你看",而是"我们一起画"

6.3 跨设备画作评审与成长记录

家长可以在手机上查看孩子在平板上完成的画作历史,为每幅作品添加评语和鼓励。所有数据通过分布式 KV 存储自动同步,家长无需手动"导入"或"导出"。

typescript 复制代码
// 家长在手机上查看孩子的作品列表
const workList = await kvStore.getEntries('work_*');
for (const entry of workList) {
  const work = JSON.parse(entry.value);
  // 作品来自平板,但在手机上查看
  this.workList.push(work);
}

// 家长添加评语,同步回平板
await kvStore.put(`work_001_feedback`, {
  parentComment: '画得真棒!小汽车的颜色很漂亮!',
  timestamp: Date.now(),
  parentDevice: '手机'
});

七、systemShare vs. 分布式协同

第 4.4 篇介绍的 systemShare 和本篇的分布式软总线 2.0 解决的是不同层次的问题,二者是递进关系而非替代关系:

对比维度 systemShare(第 4.4 篇) 分布式软总线 2.0(本篇)
内核 一次性数据分享 持续性设备协同
交互模式 用户主动发起 → 选择目标 → 发送 系统自动发现 → 持续连接 → 按需使用
典型操作 点击"分享"按钮 → 选设备 → 发送完成 应用自动感知附近设备 → 设备间实时同步
数据流 单向(A → B) 双向 / 多向(A ⇄ B ⇄ C)
生命周期 单次传输,传完即止 持续会话,随场景启停
开发接口 ShareController + SharedData DistributedKit + a2ui + distributedKVStore
用户感知 用户明确知道"我在分享" 用户可能不知道"在协同"------这才是最高境界
依赖底层 依赖软总线 1.x 依赖软总线 2.0 + 设备虚拟化 + A2UI

两者如何配合?

在"画伴梦工厂"的典型工作流中,二者可以串联使用:

  1. 创作阶段 :两个孩子通过分布式软总线 2.0 + A2UI 实时协同绘画(持续性协同
  2. 完成阶段 :画作完成后,孩子通过 systemShare 将动画视频一键分享给远程的爷爷奶奶(一次性分享

协同是创作的"过程",分享是成果的"传递"------两者共同构成了完整的跨设备体验。


八、开发最佳实践

8.1 能力检测优先

typescript 复制代码
// 在调用分布式 API 之前,始终检测能力支持
if (canIUse('SystemCapability.DistributedDataManager.KVStore.Core')) {
  // 启用分布式数据同步
  await this.initDistributedStore();
} else {
  // 降级为本地存储
  await this.initLocalStore();
}

8.2 网络状态感知

分布式协同依赖设备间的网络连接质量。建议监听网络状态,在网络不佳时降级为本地模式:

typescript 复制代码
import { connection } from '@kit.NetworkKit';

connection.on('netStatusChange', (netInfo) => {
  if (netInfo.isInternetAvailable && netInfo.wifiSignal > 2) {
    // 网络良好,启用分布式协同
    this.enableDistributedFeatures();
  } else {
    // 网络不佳,降级为单人模式
    this.disableDistributedFeatures();
    this.showNotice('网络信号较弱,已切换为单人创作模式');
  }
});

8.3 数据冲突策略选择

根据业务场景选择合适的冲突解决策略:

数据类型 推荐策略 原因
画布笔触 last_write_wins 儿童绘画允许覆盖,简单直接
作品元数据(标题、故事) last_write_wins 最后修改者的版本是最新的
家长评语 append(追加) 每条评语都应保留
用户配置(偏好设置) last_write_wins 最后设置为准

8.4 安全性考虑

typescript 复制代码
// 仅在可信设备间启用分布式能力
const devices = await deviceManager.getTrustedDeviceList();
if (devices.length === 0) {
  // 无可信设备,不暴露分布式入口
  this.showDistributedEntry = false;
  return;
}

// 对敏感数据(如儿童个人信息)不上传到分布式存储
const safeData = {
  workData: work.strokes,     // ✅ 画作数据可共享
  workTitle: work.title,      // ✅ 作品标题可共享
  // ❌ 不共享用户个人信息
  // userPhone: user.phone,
  // userLocation: user.location
};

8.5 设备虚拟化的生命周期管理

使用完远程设备资源后,务必及时释放,避免资源泄露:

typescript 复制代码
aboutToDisappear() {
  // 释放远程摄像头资源
  if (this.remoteCam) {
    this.remoteCam.release();
    this.remoteCam = null;
  }
  // 断开 A2UI 会话
  if (this.a2uiSession) {
    this.a2uiSession.disconnect();
    this.a2uiSession = null;
  }
  // 关闭分布式数据库监听
  if (this.kvStore) {
    this.kvStore.off('dataChange');
  }
}

九、与项目全场景协同设计的融合

在"画伴梦工厂"的全场景协同设计中,分布式软总线 2.0 是底层基础设施,上层的各类分布式能力构成了完整的协同生态:

复制代码
┌──────────────────────────────────────────────────┐
│              全场景协同设计生态                      │
├──────────────┬───────────────┬────────────────────┤
│  设备虚拟化   │ 分布式 KVStore │ A2UI 协议          │
│  借摄像头     │ 作品自动同步   │ 实时协同绘画        │
│  借屏幕       │ 评语跨设备    │ UI 状态同步         │
│  借扬声器     │ 设置漫游      │ 操作冲突解决        │
├──────────────┴───────────────┴────────────────────┤
│                  分布式软总线 2.0                   │
│  8ms 延迟 · 16 设备组网 · 多链路聚合 · 零感认证    │
├──────────────────────────────────────────────────┤
│             物理层:Wi-Fi / 蓝牙 / 星闪 / 蜂窝       │
└──────────────────────────────────────────────────┘

HarmonyFeaturesPage.ets 中的"全场景一体协同"板块正是这个生态的缩影------通过「手机、平板、智慧屏」三种设备角色的展示,向用户传达了"创作-协作-展示"的完整闭环概念。


总结

关键主题 核心要点
分布式软总线 2.0 指标 延迟 ≤ 8ms,单链路 16 设备协同,组网效率提升 40%
三阶段组网 异构发现(< 50ms)→ 零感认证(< 80ms)→ 通道协商(< 70ms)
设备虚拟化 摄像头 / 屏幕 / 传感器等硬件能力跨设备共享
A2UI 协议 跨设备 UI 状态实时同步,内置冲突解决策略
与项目集成 HarmonyFeaturesPage 展示协同能力,基于 distributedKVStore 实现数据同步
vs. systemShare 一次性分享 → 持续性协同,文件传输 → 硬件共享
应用场景 手机当平板摄像头、多设备实时绘画、跨设备成长记录
最佳实践 能力检测、网络感知、冲突策略、安全隔离、生命周期管理

分布式软总线 2.0 将"画伴梦工厂"的跨设备体验从第 4.4 篇的"分享完成后各玩各的"升级到了"设备间像一台设备一样协同工作"。当用户不再感知到设备之间边界的存在时,多设备协同才真正到达了它的终极形态------隐形,却无处不在


参考源码

本文相关代码参考项目中的以下源文件:

  • products/default/src/main/ets/pages/HarmonyFeaturesPage.ets --- 鸿蒙能力中心页面,包含"全场景一体协同"板块与"作品跨设备流转"功能卡
相关推荐
2501_918582371 小时前
50 Canvas 动画:@State + @Watch + animateTo 驱动模式
华为·harmonyos·鸿蒙系统
xianjixiance_2 小时前
43 短距通信场景汇总:NFC / 二维码 / 剪贴板 / 超级终端
华为·harmonyos·鸿蒙系统
木木子222 小时前
[特殊字符] 音乐播放器——状态驱动的多媒体控制
android·开发语言·华为·php·harmonyos
拥抱太阳06162 小时前
HarmonyOS 应用开发《掌上英语》第2篇:ArkTS 模块化开发:Index.ets 统一导出模式深度解析
pytorch·ubuntu·harmonyos
952362 小时前
RabbitMQ-基础操作
java·spring boot·分布式·后端·spring·rabbitmq
不羁的木木2 小时前
《HarmonyOS技术精讲-Core Vision Kit》第4篇:人脸检测与关键点定位
华为·harmonyos
拥抱太阳06163 小时前
HarmonyOS 应用开发《掌上英语》第3篇:响应式架构:BreakpointModel 与多设备适配方案
华为·架构·harmonyos
w139548564224 小时前
双色叠加雷达图:DuetReport 双人对比
华为·harmonyos·鸿蒙系统
星释4 小时前
鸿蒙智能体开发实战:19.使用变量
华为·ai·harmonyos·鸿蒙·智能体