什么是分布式软总线
分布式软总线是鸿蒙多端协同的底座。它在手机、平板、手表、车机、大屏这些设备之间铺了一条看不见的虚拟总线:设备一上线,自动发现彼此,自动连起来,应用不用关心底下是蓝牙还是 Wi-Fi,就能像调本地接口一样调对方的能力。
软总线把多台物理设备虚拟成一台超级终端,应用只面对一个逻辑整体。
这篇把软总线怎么发现设备、怎么组网、怎么安全传数据走一遍。
设备发现与组网
设备开机联网后,软总线会用蓝牙与 Wi-Fi 双通道在附近广播自己。同一账号下的设备优先互信,发现后自动建立安全连接,形成一个组网。用户不用手动配对,走近就连上。
软总线速查
- 双通道蓝牙近距发现、Wi-Fi 直连传数据。
- 自动组网同账号设备走近自动连上。
- 对开发者透明不用管底层用什么链路。
一条虚总线串起多端
组网一旦建好,各设备的 CPU、内存、传感器、屏幕就被虚拟成总线之上的共享资源。你在手机上开始的任务,可以接力到平板大屏继续做;手表上的数据,可以实时同步到手机。这背后都是软总线在搬运。
// 发现附近的同账号设备
const discovery = device.createDeviceDiscovery();
discovery.on('deviceFound', (dev) => {
console.log('发现设备:', dev.deviceName);
});
discovery.start();
发现只是第一步,真正值钱的是后面跨端调能力。
数据直连与安全
软总线传数据尽量走设备之间的直连通道,不绕远端服务器,延迟低、隐私好。每一次跨端连接都要经过账号校验与通道加密,陌生设备不能随便加入组网,传过去的数据也被加密保护。
开发接口与能力
鸿蒙把软总线封成了系统能力,应用通过统一的分布式接口调用:拉附近设备、建立会话、跨端拉起 Ability、传字节流。接口设计得很薄,业务层不用关心底层链路是蓝牙还是 Wi-Fi。
- 设备发现:枚举组网内在线设备。
- 跨端拉起:在另一台设备打开同一页。
- 数据通道:双向低延迟传输。
典型应用场景
软总线撑起了鸿蒙的多端故事:手机通话车机接、手机拍的照平板上接着修、手表测的心率手机大屏看。它也让办公更顺——文档在多屏之间无缝拖,会议跨设备接续。这些体验的底层都是同一条软总线在跑。
实战:拉起附近设备
做一个小功能:发现附近同账号设备并在另一台设备打开当前页。
// 跨端拉起同一页面
distributedAbility.startRemoteAbility({
deviceId: remote.deviceId,
bundleName: 'com.example.demo',
abilityName: 'EntryAbility'
});
组网发现设备、拿到 deviceId,再用跨端拉起把任务送过去。软总线做到这份上,用户在多设备之间的体验就像在同一台机器上。