花粉乐分享平台宣传视频
> 华为资讯 > 华为资讯 > 鸿蒙系统 > 华为专家讲解 OpenHarmony 开源鸿蒙硬件资源池化模型
华为专家讲解 OpenHarmony 开源鸿蒙硬件资源池化模型
来源:IT之家
2022-07-13 15:40:38
591
管理
IT之家 4 月 28 日消息,近期,OpenAtom OpenHarmony 首次对外解读了 OpenHarmony 3.1 Release 技术特性。数据显示,截至目前,OpenHarmony 吸引了 40 多家主仓代码贡献单位,汇聚 160 万 社区用户,建立 44 个特别兴趣小组,全球下载次数高达 6300 万,5.5 万 次代码提交。 OpenHarmony 分布式硬件管理 SIG 成员、华为技术有限公司分布式硬件专家李刚关于 OpenHarmony 3.1 Release 版本关键特性 ——OpenHarmony 硬件资源池化模型进行了解析。 OpenAtom OpenHarmony(以下简称“OpenHarmony”)作为面向全场景、全连接、全智能时代的分布式操作系统,通过将各类不同终端设备的能力进行整合,实现硬件互助、资源共享,为用户提供流畅的全场景体验。 在这里,专家通过通过介绍 OpenHarmony 的硬件资源池化模型,为大家揭晓了 OpenHarmony 是如何实现多设备协同的。(以下出自 OpenAtom OpenHarmony 官微) 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) => {    this.log("createDeviceManager err:"   JSON.stringify(err)   '  --success:'   JSON.stringify(dm))    if (err) return;    dmClass = dm;    dmClass.on('serviceDie', data => this.log("serviceDie on:"   JSON.stringify(data)))});// 查询可信设备列表var array = dmClass.getTrustedDeviceListSync();// 获取本地设备信息var localDeviceInfo = dmClass.getLocalDeviceInfoSync();// 开始设备发现(发现周边不可信设备)var subscribeId = 0;dmClass.on('deviceFound', (data) => {    if (data == null) {        this.log("deviceFound error data=null")        return;    }    this.logList.push("deviceFound:"   JSON.stringify(data));});dmClass.on('discoverFail', (data) => {    this.log("discoverFail on:"   JSON.stringify(data));});subscribeId = Math.floor(Math.random() * 10000   1000)var info = {    "subscribeId": subscribeId,    "mode": 0xAA,    "medium": 0,    "freq": 2,    "isSameAccount": false,    "isWakeRemote": true,    "capability": 0};dmClass.startDeviceDiscovery(info);// 停止设备发现(需要和startDeviceDiscovery接口配对使用)dmClass.stopDeviceDiscovery(subscribeId);// 设备认证var deviceInfo ={    "deviceId": "XXXXXXXX",    "deviceName": "",    deviceType: 0};let extraInfo = {    "Icon": new Uint8Array(), // 图标,可选参数,可不填    "Thumbnail": new Uint8Array(), // 缩略图,可选参数,可不填    "Name": "xxxxxxxx", // 对端设备应用名称    "Description": "xxxxxxxx", // 描述    "business": '0',    "displayOwner": 0,}// 设备取消认证dmClass.unAuthenticateDevice(this.deviceInfo); DeviceManager 的更多详情,请参考以下代码仓: https://img.hflfx.com/pic/vasw3ca3z5g 2.2 分布式硬件框架 分布式硬件框架为硬件资源池化模型提供了接入管理、能力查询、状态管理、权限管理以及版本管理等硬件资源管理能力,如图 6 所示: 图 6 分布式硬件框架 分布式硬件框架的各模块说明如下: 图 9 分布式相机的模块说明 分布式相机的更多详情,请参考分布式相机代码仓: https://img.hflfx.com/pic/tunmthkyvua 2.4 分布式屏幕 分布式屏幕提供了屏幕设备的硬件资源软件抽象能力,为 OpenHarmony 系统框架提供系统投屏、屏幕镜像、屏幕分割等能力的实现。分布式屏幕的框架图如下所示: 图 10 分布式屏幕 分布式屏幕的各模块说明如下: 图 11 分布式屏幕的模块说明 分布式屏幕的更多详情,请参考以下代码仓: https://img.hflfx.com/pic/qx103f23hyb

花粉社群VIP加油站

1
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与花粉乐分享无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
凡本网注明 “来源:XXX(非花粉乐分享)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。
如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。
QQ:2443165046 邮箱:info@hflfx.com
关于作者
放开那只猫..(采蜜高手)
文章
548
主题
0
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行
随手拍
54个圈友 0个话题
华为手机随手拍,记录生活点滴之美好
华为P30pro
51个圈友 0个话题
这里是华为P30pro手机交流圈,欢迎华为P30pro用户进群交流
体验官
60个圈友 2个话题
华为花粉体验官,体验官专属的交流群
登录后查看您创建的圈子
登录后查看您创建的圈子
所有圈子
杭州互联网违法和不良信息举报平台 网络110报警服务 浙ICP备17046585号
1
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索