手机拍的素材往平板上一拖就行了:聊聊鸿蒙几个让多设备协同真正好用的开发特性

手机拍的素材往平板上一拖就行了:聊聊鸿蒙几个让多设备协同真正好用的开发特性

上个月 HarmonyOS 6.1.0(23) Release 发了新版本,推送之后,我就把手头几台设备都升级了。虽然是小版本的迭代,但是,系统层面的变化其实也不少,比如,ArkUI 组件动效、Media Kit 边播边缓存、平行视界的分栏控制……整个体验下来,让我体感明显感觉到,多设备协同这块的体验又顺滑了一截。

为什么说“又”,原因很简单,这些功能并不是 6.1.0 才有的功能,这次迭代更多的是增强和优化以前的功能,底层的连接稳定性、传输速率、状态同步的响应速度都在持续打磨,到了 6.1 这个版本,我觉得有几个场景的体验已经跨过了“能用”到“好用”的门槛。

所以,借着这次 6.1.0 这次版本的更新迭代这个契机,我想挑几个感觉非常实用,非常有特色的多设备协同方面的场景,结合背后对应的开发特性(Kit),聊聊鸿蒙在跨设备体验上到底做了什么、开发者可以怎么用这些能力。

场景一:多屏协同干活

先说一下我自己的高频需求,因为我是做技术自媒体的,像我这种做内容的人需要经常在手机上拍摄素材,然后上传到电脑。以前的流程就是拍完照片或者视频,打开文件管理器,选中要上传的素材,分享到微信或者 QQ 传输助手,再在电脑端下载。这种流程操作一个是步骤多,关键是是素材大的时候,传输和下载太慢了,这个等待的过程就会让你非常崩溃。

那如果在鸿蒙设备上呢?其实这个复杂的流程就是四个字:跨设备拖拽。

ArkUI 统一拖拽

举个例子,比如,ArkUI 框架就提供了统一拖拽的能力。开发者只需要在应用中声明支持拖拽的组件后,用户就可以直接把手机屏幕中的图片啊、视频这类素材拖拽到旁边的平板或者 PC 电脑上正在运行的应用窗口中。整个过程非常丝滑,不需要什么复制和粘贴,更不要借助第三方传输助手等。当然了,这需要在同一个华为账号下才行。

从咱们开发者的角度来讲呢?接入也非常简单,因为 ArkUI 的拖拽事件模型是统一的,无论是同设备内的拖拽还是跨设备的拖拽,都是使用的同一套 API 。换句话讲,你只需要添加事件即可,系统层面负责处理设备的发现、连接建立和数据的传输,应用只需要关心“我接收了什么数据,该怎么处理”。

举个具体的应用场景:一个视频剪辑类 App,用户在手机上拍摄了几段素材,然后,打开平板上的剪辑应用,直接把手机相册里的视频片段拖进时间轴。对用户来说,两台设备就像一台设备的两块屏幕。

其实,还有更猛的,那就是基于 Service Collaboration Kit 和 Network Boost Kit(弱网感知&连接迁移感知)开发套件可以做到跨设备调用拍照、图库和扫描功能,做到了服务互通,素材能够实现即拍即得。

统一拖拽官网文档

跨设备剪贴板

再说一个跨设备剪切板的功能,我感觉这也是一个超级实用的功能,当然了,你可能会说苹果系列产品也有这种功能,但是,我想说的是整个体验我感觉不比 Mac 系统下的这种功能差。在同一华为账号下登录的设备之间,复制的文本、链接、图片会自动同步到剪贴板。比如,你在手机上复制一段地址,切到鸿蒙系统平板的地图应用里直接粘贴即可,中间根本就不需要任何额外的操作。

这个能力背后依赖的就是 Basic Services Kit 提供的分布式剪贴板服务。说通俗一点,就是系统在底层维护了一个跨设备的剪贴板状态同步机制,延迟控制在毫秒级。对于开发者来说,真的是不需要做什么额外适配了,系统剪贴板的读写接口和单设备场景完全一样。

场景二:任务无缝流转,换个设备接着干

如果说跨设备剪贴板解决的是“数据片段”的流转问题,那我们其实也经常会遇到“整个任务”的流转场景。比如,你在手机上看到一半的视频,到家之后,想在大屏上继续看;或者是在公司电脑上编辑的文档,在通勤路上想在手机上继续修改编辑。怎么办呢?

这就是 Ability Kit 中“应用接续”能力要解决的问题了。

Ability Kit 应用接续

应用接续,这个功能说白了,它的核心思路就是:把应用当前的状态(页面位置、控件状态、用户输入的临时数据等)打包成一个可迁移的数据结构,当用户的场景发生了变化,需要在另一台设备上打开同一应用时,系统自动恢复到之前的状态。

从技术实现上的角度来讲,开发者只需要在 module.json5 中声明 UIAbility 支持接续(设置 continuable: true),然后实现 onContinue 回调来保存需要迁移的数据,以及在目标设备的 onCreate 或 onNewWant 中恢复这些数据。整个迁移过程由系统的 ContinuationManager 调度,我们开发者根本不需要关心设备发现和连接管理等这些细节,真的是方便了开发者。

在我看来, 这个能力最精妙的地方就是,他把“接续”这件事做到了应用组件级别的颗粒度。什么意思呢?就是它并不是把整个 App 的状态粗暴的搬过去,而是精确到某个 UIAbility 的某个页面状态。这就意味着,比如一个视频 App 的话,可以只迁移「播放页面」的进度和弹幕位置,而不需要把整个 App 的各种什么登录状态、缓存、设置等全部重新加载。

我们大家可以想象一个场景,比如,你的手机上某一个笔记应用写了一半的会议纪要,走到会议室坐下,这时候,平板会自动弹出提示词“是否继续编辑”,点击确认之后,文档内容、光标位置、甚至你刚刚选中但还没删除的那段文字,全部原样恢复。响应时间是毫秒级的,几乎让人感知不到切换。是不是很赞。

其实,创新就是来自于这些细节上的把控。

Ability Kit 官方文档介绍

AVSession Kit 无线投屏投播

我再说一个高频的任务流转场景,就是音视频的跨屏播放。支持这个能力的是 AVSession Kit 开发套件,它提供的无线投屏投播能力,让音视频类应用可以把正在播放的内容无缝切换到其他鸿蒙设备上。和传统投屏方案不同的是,鸿蒙的方案在切换过程中做到了无黑屏,音画同步的延迟控制在毫秒级。

对开发者来说,接入 AVSession Kit 后,应用的播放状态同样会被系统统一管理。用户可以通过控制中心选择输出设备,应用不需要自己实现设备发现和投屏协议。这就大大降低了音视频类应用支持多设备播放的开发成本。

AVSession Kit 官方文档介绍

场景三:碰一碰,内容直达

如果说前面两个场景讲的是多设备之间的一个协同的话,其实,对于大多数普通人来讲,日常当中还有一个高频的需求就是把内容快速的发给别人。

普通人最常用的就是两种方式,一种是,社交软件内的传送,通过流量网络传输,非常慢;还有一种是传统的蓝牙技术,需要配对,相对来讲,速度也一般。

说到这里,就不得不提 Share Kit 了。

Share Kit 碰一碰分享

Share Kit 的“碰一碰”能力主要基于 NFC(近场通信)技术实现触碰触发,并依赖分布式软总线(基于 Wi-Fi 直连)进行高速数据传输。‌‌通过这个解决方案,两台设备之间,你只需要轻轻一碰,就能完成文件、图片甚至是大体积视频的传输。据测试,传输速率可以达到 160MB/s,换句话讲,一个几百兆的文件仅需要几秒钟就能传完。

这个交互的优雅之处就在于它的“零门槛”。什么意思呢?就是不需要互加好友,更不需要打开某个特定的传输应用。碰一下,系统自动拉起分享界面,选择要分享的内容,对方设备就能马上收到。

从开发者的角度来看,Share Kit 提供了统一的分享接口。应用只需要调用系统分享面板,声明自己能提供或接收的数据类型,剩下的设备发现、连接建立、数据传输全部由系统完成。

我感觉有一个非常有意思,也非常典型的应用场景,就是游戏组队。比如,传统的方式就是朋友面对面开黑,互相发邀请码、扫二维码等。现在呢,两台手机只需碰一下,就可以直接拉起组队界面,省去了所有中间步骤和环节,便捷到没有简化的空间了。对于游戏开发者来说,只需要在分享数据中携带房间信息,系统会帮你完成从“碰一碰”到“拉起应用指定页面”的全部流程。简直不要太方便了。

Share Ki 官方文档

统一系统分享

除了碰一碰这种近场方案,Share Kit 还提供了统一系统分享面板的能力。用户在任何应用中选中内容后,可以通过系统分享面板一键发送给多个联系人,操作入口统一,不需要在不同应用之间反复切换。

真正做到内容秒传,直达应用。

写在最后

我们可以回过头再看看这三个场景,你就会发现,鸿蒙做对的一件事就是:把“跨设备”这个本来很复杂的系统级能力,封装成了开发者友好的 Kit 接口。开发者不需要自己处理设备发现、连接管理、数据序列化等等这些底层细节,只需要关心业务逻辑本身就行。

那对于用户来说,这些能力带来的体验提升是“无感”的。你不会意识到自己在“使用跨设备功能”,你只是自然地拿起了手边的另一台设备,然后事情就接着往下走了。我觉得这才是多设备协同应该有的样子:技术越复杂,体验越简单。

鸿蒙真正做到了,既方便了开发者,也方便了用户,把复杂留给了自己。这才是做系统、打造生态,做好产品的态度啊。

编辑于 2026-05-28 · 著作权归作者所有