0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用辅助工具SIG为OpenHarmony操作系统开发化解疑难

OpenAtom OpenHarmony ? 来源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-03-15 10:27 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

开发繁琐,辅助工具SIG应运而生

随着国内信息化市场的逐步成长,以 OpenAtom OpenHarmony(以下简称“OpenHarmony”)为基座,国产化操作系统为代表的创新产业汇聚了众多开发者的加入。对应用开发者,OpenHarmony 采用了多种分布式技术,使应用开发与不同终端设备的形态差异无关;对设备开发者,OpenHarmony 采用了组件化的设计方案,可根据设备的资源能力和业务特征灵活裁剪。使得 OpenHarmony 成为众多开发者青睐的开源项目。

然而,在 OpenHarmony 操作系统层面能力有待提升,需要系统开发者增强系统能力,诸如 NAPI 框架代码的重复率问题、开机动画展现受限和代码语言开发难度大等。

(1)NAPI 框架代码重复率问题。面对不同的 TS 接口,开发者都需实现相似度极高的框架代码,工作较为繁琐;

(2)开机动画展现受限。开机动画是一种特殊压缩格式的图片资源文件,仅有图片集或视频资源,开发者无法在各发行版和定制版进行定制化展现;

(3)代码语言开发难度大。对于存量接口或者已有 C/C++ 接口,开发者需要把 C/C++ 头文件手写为 IDL 文件。双方语言不同,熟悉 C/C++ 头文件语法的同时还要熟悉 IDL 语法,造成手写难度很大,影响了开发效率。

为丰富 OpenHarmony 社区生态,深圳开鸿数字产业发展有限公司(以下简称“深开鸿”)申请并由 PMC 核准成立辅助工具 SIG,负责 OpenHarmony 社区特定子领域及创新项目的架构设计、开源开发及项目维护等工作。

对症解决,辅助工具SIG化解疑难

辅助工具 SIG 主要用于辅助 OpenHarmony 操作系统开发,针对图形子系统中开机动画的快速定制,通过优化驱动 HDF 框架 HDI 接口的开发流程,系统框架层与应用层间接口 NAPI 的开发流程等环节,提高开发效率。为构建开放繁荣的 OpenHarmony 社区生态添砖加瓦。

NAPI框架代码生成工具

OpenHarmony 各子系统的诸多能力需对应用开放,NAPI 框架代码生成工具需求尤为迫切。针对 NAPI 在开发过程中的大量需求,开发效率低且重复率高等问题,深开鸿专项小组根据社区开发环境和版本计划,从 NAPI 工具开发环节切入,经过夜以继日的攻坚,实现了 NAPI 框架代码生成工具。用户可根据指定路径的 TS 接口文件,一键生成 NAPI 代码框架、业务代码框架、GN 文件。

SIG仓地址:https://gitee.com/openharmony-sig/napi_generator

框架层开发者也无需再关注 Nodejs 相关语法,C++ 与 JS 之间的接口类型转换、数据类型转换,只需关注业务实现逻辑准确性。NAPI 框架代码生成工具的应用,极大提升了开发效率。

开机动画生成工具

开发者在只有图片集或者 mp4 文件的情况下,可以使用开机动画生成工具,一键生成开机动画文件,并支持在 PC 上查看其效果。后续,该工具将实现一键进入开发板展现开机动画的功能演进。目前,开机动画生成工具已支持设置开机动画的分辨率、旋转角度、翻转镜像等功能,也可为各发行版和定制版生成定制化开机动画。

开机动画生成工具已经成功进入 OpenHarmony master 分支供广大开发者使用。

代码仓地址:https://gitee.com/openharmony/graphic_standard/tree/master/frameworks/bootanimation/data/bootanimation_tool

HDI生成工具

当客户端与服务器通信时,需要定义双方都认可的接口,以保障双方可成功通信。IDL(Interface Definition Language) 则是一种定义此类接口的语言,包含面向应用程序的北向接口和面向硬件设备的南向接口。

应用 HDI 生成工具后,开发者无需过多关注 IDL 的语法,只需定义最熟悉、最擅长的 C/C++ 接口文件,使用工具,即可生成 IDL 文件。另外,现存的大量 C/C++ 头文件,开发者借此工具可以自动将其转换为 IDL 文件,以提高 HDI 开发效率。

代码仓地址:https://gitee.com/openharmony/drivers_framework/tree/master/tools/idl-gen

技术拆解,秒懂辅助工具SIG

NAPI框架代码生成工具

1、软件架构

8f8c287a-a01c-11ec-952b-dac502259ad0.png

2、代码目录及说明

├── napi_tool # NAPI框架代码生成工具│ ├── doc # 工具当前能力、版本规划│ ├── image # 图片资源文件│ ├── output # 工具对应的可执行程序与插件程序│ ├── code # 工具源码│ └── README # 工具使用指导 └──README

3、使用场景

(1)命令行

① Windows环境

8fa98ea6-a01c-11ec-952b-dac502259ad0.png

Linux环境

8fbba24e-a01c-11ec-952b-dac502259ad0.png

(2)插件

① 插件安装

② .d.ts 上点击右键,选择 .d.ts 生成 c++ 选项,即可生成 NAPI 框架代码。

安装步骤:https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/INSTRUCTION_ZH.md

8fe9b54e-a01c-11ec-952b-dac502259ad0.png

开机动画生成工具

1、软件架构

开机动画的压缩格式如下,以此依据,设计开机动画生成工具:

struct HeaderInfo { uint32_t type; 占4个字节, 固定值2 uint32_t offset; 占4个字节,与上一帧对比,像素开始不同的位置 uint32_t length; 占4个字节,压缩前数据长度 uint32_t clen; 占4个字节,压缩后数据长度 uint8_t mem[0]; 实际的压缩数据}

bootanimation.raw 压缩文件格式如下:

9002761a-a01c-11ec-952b-dac502259ad0.png

2、代码目录及说明

├── bootanimation_tool # 开机动画生成工具│ ├── raw_maker.py # 开机动画生成│ ├── raw_player.py # 开机动画查看│ └── README # 工具使用指导

3、使用场景

(1)使用方法

python raw_maker.py (-m <*.mp4> | -i ) [-o ] [-d ] [-r ] [-f]

(2)参数说明

-h, --help # 查看命令帮助并退出-m <*.mp4>, --mp4 <*.mp4> # <*.mp4>源文件-i , --image # 源image文件存放路径-o , --out # 制作开机动画.raw 文件的输出路径 -d , --display # 设置开机动画分辨率, 举例:640x480-r , --rotate # 设置开机动画旋转角度, 举例:90°,180°或270°-f,--flip#设置开机动画是否翻转

HDI生成工具

9017f300-a01c-11ec-952b-dac502259ad0.png

90340a4a-a01c-11ec-952b-dac502259ad0.png

2、代码目录及说明

├──h2idl_tool # H转IDL代码生成工具│ ├── docs # 工具当前能力、版本规划│ ├── out # 生成的IDL文件│ ├── testcase # 工具的测试用例│ ├── thirdparty # 使用的三方解析库│ ├──_header_parser.py # C/C++头文件解析│ └── idl_generator.py # IDL文件生成

3、使用场景

(1)使用方法

pythonidl_generator.py-f<*.h>-o

(2)参数说明

-h, --help # Show this help message and exit-v, --version # Display version information-f <*.h>, --file <*.h> # Compile the C/C++ header file-o,--out#Placegenerated.idlfilesintothe

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    7197

    浏览量

    126340
  • C++
    C++
    +关注

    关注

    22

    文章

    2120

    浏览量

    75813

原文标题:全面提速 | 辅助工具SIG助力OpenHarmony代码开发

文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【重要通知】OpenHarmony主干平台开发板选型提报倒计时(参考工具发布)

    此版《OpenHarmony开发板硬件接口标准参考表》供各位参考评估。 参考表下载:*附件:OpenHarmony开发板硬件接口标准参考表.pdf 提报渠道: 邮件至:49778983
    发表于 07-24 09:17

    润开鸿推出基于OpenHarmony的桌面操作系统及AI PC工作站

    近日,攀升科技13周年庆典系列活动圆满举办,作为领先的鸿蒙方向专业技术公司及终端操作系统发行版提供商,以及开放原子开源基金会OpenHarmony项目群A类捐赠人和核心共建单位,江苏润和软件
    的头像 发表于 06-03 16:25 ?527次阅读

    基于LuatOS核心库的实时操作系统开发:从理论到实践~

    ,降低了系统阻塞风险。 在LuatOS开发中,用于实时操作系统(RTOS)相关功能的核心库——提供了定时器管理、系统控制、内存监控、路径配置等底层
    的头像 发表于 05-16 13:56 ?252次阅读
    基于LuatOS核心库的实时<b class='flag-5'>操作系统开发</b>:从理论到实践~

    KaihongOS操作系统:ArkTS语言基础

    ArkTS语言基础 KaihongOS是面向全场景的万物智联技术底座,在OpenHarmony基础上技术创新和系统能力增强的跨设备的操作系统,它支持多种设备类型。ArkTS是KaihongOS
    发表于 04-23 06:31

    求助,关于iMX DDR3寄存器编程辅助问题求解

    我们目前正在使用 iMX6UL DDR 寄存器编程辅助工具 U-Boot 生成 DCD 表。我们的设备使用的是 MT41K128M16JT-107,即 DDR3-1866,这意味着它的时钟周期频率
    发表于 03-27 07:16

    鸿蒙北向开发OpenHarmony4.1 DevEco Studio开发工具安装与配置

    OpenHarmony4.1 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!
    的头像 发表于 02-07 17:35 ?957次阅读
    鸿蒙北向<b class='flag-5'>开发</b><b class='flag-5'>OpenHarmony</b>4.1 DevEco Studio<b class='flag-5'>开发工具</b>安装与配置

    国产银河麒麟操作系统V10和星光麒麟V1.0操作系统如何选择?

    国产银河麒麟操作系统和星光麒麟操作系统都是由中国电子旗下科技企业麒麟软件有限公司(简称“麒麟软件”)开发的国产自主可控的操作系统。麒麟软件介绍:麒麟软件以安全可信
    的头像 发表于 01-24 09:14 ?2678次阅读
    国产银河麒麟<b class='flag-5'>操作系统</b>V10和星光麒麟V1.0<b class='flag-5'>操作系统</b>如何选择?

    deepin操作系统介绍

    希望从自己的能力和对桌面操作系统的理解,能给 Linux 的用户与开发者更多的选择。我们也相信 deepin 能够得到更多用户的认可与喜爱,成为开源世界的最佳选择。? 一、 deepin 操作系统 先说 Linux
    的头像 发表于 12-23 09:08 ?2611次阅读
    deepin<b class='flag-5'>操作系统</b>介绍

    名单公布!【书籍评测活动NO.53】鸿蒙操作系统设计原理与架构

    的底层设计逻辑出发,针对不同关键子系统的目标功能和实现路径做实际分析解读,帮助开发者理解鸿蒙操作系统的底层逻辑,开发更适合系统逻辑的架构代码
    发表于 12-16 15:10

    RT-Thread操作系统应用开发寒假师资培训

    随着物联网和智能系统的快速发展,嵌入式成为当前最热门最有发展前途的IT应用领域之一。进一步提升全国大学生在嵌入式芯片及系统设计领域的创新能力,特别是针对物联网应用开发中RT-Thre
    的头像 发表于 12-06 01:06 ?678次阅读
    RT-Thread<b class='flag-5'>操作系统</b>应用<b class='flag-5'>开发</b>寒假师资培训

    RK3588开发板Android系统开发笔记-使用ADB工具

    工具在网盘资料“iTOP-3588 开发板\\\\02_【iTOP-RK3588 开发板】开发资料\\\\ 07_Android 系统开发
    发表于 11-27 10:39

    什么是嵌入式操作系统?

    机器人的大脑。它告诉机器人怎么工作,什么时候做什么事,怎么和它身体上的各种传感器和部件沟通,EOS是嵌入式系统设计的专用操作系统。 那它到底有什么特别的呢? 1.超快反应:EOS得像闪电一样快,一旦有
    发表于 11-08 15:07

    实时操作系统开发工具:鸿道Intewell Developer介绍

    鸿道Intewell Developer是鸿道Intewell操作系统的实时应用开发环境,拥有可视化的操作界面,提供规范、统一、集中的配置入口,提供项目管理、编程开发环境、目标机配置管
    的头像 发表于 11-04 14:51 ?714次阅读
    实时<b class='flag-5'>操作系统开发工具</b>:鸿道Intewell Developer介绍

    全新原生鸿蒙HarmonyOS NEXT发布,书写国产操作系统新篇章!同时,触觉智能发布OpenHarmony5.0固件

    10月22日,华为举行“原生鸿蒙之夜暨华为全场景新品发布会”,正式用户带来基于OpenHarmony打造的全新原生鸿蒙操作系统HarmonyOS NEXT和华为多个全场景智能设备新品。与此同时,触觉智能旗下鸿蒙
    的头像 发表于 10-28 13:46 ?1593次阅读
    全新原生鸿蒙HarmonyOS NEXT发布,书写国产<b class='flag-5'>操作系统</b>新篇章!同时,触觉智能发布<b class='flag-5'>OpenHarmony</b>5.0固件

    利用仿真技术进行智能制动系统开发

    在当前的汽车行业中,安全性仍然是首要关注点之一。自动紧急制动系统(AEB)作为增强道路安全的核心技术,正逐渐普及。该系统通过高级传感器和算法来预测和应对潜在的撞车风险,极大提升了安全性。在 AEB 系统
    的头像 发表于 09-05 09:38 ?834次阅读
    <b class='flag-5'>利用</b>仿真技术进行智能制动<b class='flag-5'>系统</b>的<b class='flag-5'>开发</b>