IT之家4月28日消息,近期,OpenAtomOpenHarmony首次对外解读了OpenHarmony3。1Release技术特性。数据显示,截至目前,OpenHarmony吸引了40多家主仓代码贡献单位,汇聚160万社区用户,建立44个特别兴趣小组,全球下载次数高达6300万,5。5万次代码提交。 OpenHarmony分布式硬件管理SIG成员、华为技术有限公司分布式硬件专家李刚关于OpenHarmony3。1Release版本关键特性OpenHarmony硬件资源池化模型进行了解析。 OpenAtomOpenHarmony(以下简称OpenHarmony)作为面向全场景、全连接、全智能时代的分布式操作系统,通过将各类不同终端设备的能力进行整合,实现硬件互助、资源共享,为用户提供流畅的全场景体验。 在这里,专家通过通过介绍OpenHarmony的硬件资源池化模型,为大家揭晓了OpenHarmony是如何实现多设备协同的。(以下出自OpenAtomOpenHarmony官微)1。硬件资源访问的演进 硬件资源访问是多设备进行协同的关键。OpenHarmony发展至今,硬件资源访问经历了从一对一到多对多的演进过程。1。1一对一 在设计初期,为解决两台设备间的协同问题,我们通过OpenHarmony提供的分布式设备虚拟化能力将两台设备的硬件资源进行融合,实现了一对一的硬件资源访问。这便是硬件资源池化模型的雏形。 图1一对一的硬件资源访问1。2多对多 随着全场景智慧生活的不断深入,一对一的设备硬件资源访问方式已不能满足某些复杂场景的业务需求。OpenHarmony对分布式技术不断探索与创新,通过增强原来的分布式设备虚拟化能力,将多台设备的各种硬件资源,如屏幕、相机、扩音器、键盘、传感器及存储器等予以抽象,形成超级虚拟终端内的统一硬件资源池,并支持硬件资源的按需分配和重新组合,真正实现了硬件资源的全局调用。组成超级虚拟终端的多个设备,能访问硬件资源池内的多种硬件资源,这便是多对多的硬件资源访问。 图2硬件资源池化(多对多) 基于硬件资源池化,开发者可以根据不同的业务场景,在硬件资源池内选择并匹配合适的能力模块,充分发挥不同设备的能力优势,从而构建全新的用户体验。2。硬件资源池化模型 基于硬件资源池化的创新理念,OpenHarmony融合硬件虚拟化、硬件资源管理及硬件数据管理等能力,构建了硬件资源池化模型,对外提供了统一的硬件能力开放接口,让开发者轻松实现高效开发。 如图3所示,硬件资源池化模型将各类设备的硬件资源进行抽象,为北向应用提供各种分布式服务,比如分布式相机、分布式屏幕、分布式音频和分布式输入等,同时提供统一的设备管理和分布式硬件框架。 图3硬件资源池化模型 下面为大家一一介绍硬件资源池化模型的各个组成部分。2。1设备管理 设备管理(即DeviceManager)服务,提供设备发现、认证管理、可信设备管理和设备状态管理等能力。 图4设备管理(DeviceManager) OpenHarmony为开发者提供了一套设备管理接口,用于分布式设备间监听、发现和认证,如图5所示。 图5设备管理接口 设备管理接口的使用示例代码如下:创建DeviceManager实例:deviceManager。createDeviceManager(com。ohos。xxxx,(err,dm)gt;{this。log(createDeviceManagererr:JSON。stringify(err)success:JSON。stringify(dm))if(err)return;dmClassdm;dmClass。on(serviceDie,datagt;this。log(serviceDieon:JSON。stringify(data)))});查询可信设备列表vararraydmClass。getTrustedDeviceListSync();获取本地设备信息varlocalDeviceInfodmClass。getLocalDeviceInfoSync();开始设备发现(发现周边不可信设备)varsubscribeId0;dmClass。on(deviceFound,(data)gt;{if(datanull){this。log(deviceFounderrordatanull)return;}this。logList。push(deviceFound:JSON。stringify(data));});dmClass。on(discoverFail,(data)gt;{this。log(discoverFailon:JSON。stringify(data));});subscribeIdMath。floor(Math。random()100001000)varinfo{subscribeId:subscribeId,mode:0xAA,medium:0,freq:2,isSameAccount:false,isWakeRemote:true,capability:0};dmClass。startDeviceDiscovery(info);停止设备发现(需要和startDeviceDiscovery接口配对使用)dmClass。stopDeviceDiscovery(subscribeId);设备认证vardeviceInfo{deviceId:XXXXXXXX,deviceName:,deviceType:0};letextraInfo{Icon:newUint8Array(),图标,可选参数,可不填Thumbnail:newUint8Array(),缩略图,可选参数,可不填Name:xxxxxxxx,对端设备应用名称Description:xxxxxxxx,描述business:0,displayOwner:0,}设备取消认证dmClass。unAuthenticateDevice(this。deviceInfo); DeviceManager的更多详情,请参考以下代码仓: https:gitee。comopenharmonydevicemanager2。2分布式硬件框架 分布式硬件框架为硬件资源池化模型提供了接入管理、能力查询、状态管理、权限管理以及版本管理等硬件资源管理能力,如图6所示: 图6分布式硬件框架 分布式硬件框架的各模块说明如下: 图9分布式相机的模块说明 分布式相机的更多详情,请参考分布式相机代码仓: https:gitee。comopenharmonydistributedcamera2。4分布式屏幕 分布式屏幕提供了屏幕设备的硬件资源软件抽象能力,为OpenHarmony系统框架提供系统投屏、屏幕镜像、屏幕分割等能力的实现。分布式屏幕的框架图如下所示: 图10分布式屏幕 分布式屏幕的各模块说明如下: 图11分布式屏幕的模块说明 分布式屏幕的更多详情,请参考以下代码仓: https:gitee。comopenharmonydistributedscreen