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

    文章

    7453

    浏览量

    129725
  • C++
    C++
    +关注

    关注

    22

    文章

    2131

    浏览量

    77487

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MATLAB与Simulink R2026a:Agentic AI驱动工程化系统设计新范式

    近期,R2026a版本首次将Agentic AI深度集成至MATLAB与Simulink,实现从“辅助工具”到“主动智能体”的范式转变。
    的头像 发表于 05-06 10:38 749次阅读

    借助TRAE和MCUXpresso for VS Code实现AI辅助开发MCX A系列MCU工程

    作为一个折腾过几乎所有主流AI编程辅助工具开发者,本猿最终还是觉得国产的TRAE对国区用户最友好、最稳定。虽然它偶尔也会“天马行空”地输出一些奇怪代码,但整体在嵌入式开发上的表现已经非常靠谱,更重要的是——免费。
    的头像 发表于 03-02 09:24 1533次阅读
    借助TRAE和MCUXpresso for VS Code实现AI<b class='flag-5'>辅助</b><b class='flag-5'>开发</b>MCX A系列MCU工程

    【原创】OpenHarmony系统投屏工具软件 - OpenHarmony_OHScrcpy使用推荐

    OpenHarmony_OHScrcpy - OpenHarmony投屏工具软件 OpenHarmony_OHScrcpy是一款
    发表于 01-22 18:34

    操作系统体系结构

    操作系统的体系结构是一个开放的问题。正如上文所述,操作系统在核心态应用程序提供公共的服务,那么操作系统在核心态应该提供什么服务、怎样提供服务?有关这个问题的回答形成了两种主要的体系结
    发表于 01-15 08:19

    EV10AS180A模数转换器支持哪些操作系统

    的一部分,与嵌入式Linux系统配合使用;而在雷达系统中,它可能与其他硬件模块一起,在RTOS环境下运行。开发环境与工具支持:虽然EV10AS180A本身不直接支持
    发表于 11-18 09:18

    融合AI的OpenHarmony应用软件开发:ai学习自律辅助软件

    *附件:ai study.zip*附件:融合AI的OpenHarmony应用软件开发:ai学习自律辅助软件.pdf 基于开源鸿蒙编写的ai辅助学习软件
    发表于 11-12 15:38

    【好书推荐】RT-Thread第22本相关书籍!《嵌入式实时操作系统开发实践》| 技术集结

    教学的首选平台。本次推荐的第22本RT-Thread相关书籍——《嵌入式实时操作系统开发实践(基于英飞凌PSoC62和RT-Thread)》正是一本将理论与实践深
    的头像 发表于 10-16 18:46 996次阅读
    【好书推荐】RT-Thread第22本相关书籍!《嵌入式实时<b class='flag-5'>操作系统开发</b>实践》| 技术集结

    如何秒级实现接口间“幂等”补偿:一款轻量级仿幂等数据校正处理辅助工具

    导语 本文分析了在网络超时场景下,RPC服务调用数据一致性的问题,对于接口无幂等、接口幂等失效情况下,对异常数据快速处理做了分析思考和尝试,开发了一款轻量级仿幂等数据校正处理辅助工具。该工具可以
    的头像 发表于 09-15 16:55 1057次阅读
    如何秒级实现接口间“幂等”补偿:一款轻量级仿幂等数据校正处理<b class='flag-5'>辅助工具</b>

    Windows上使用ENV工具开发基于先楫MCU的RT-Thread应用

    前言Env是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的menuconfig提供了简单
    的头像 发表于 08-29 12:22 1868次阅读
    Windows上使用ENV<b class='flag-5'>工具</b><b class='flag-5'>开发</b>基于先楫MCU的RT-Thread应用

    在Ubuntu上开发基于先楫MCU的RT-Thread应用指南

    1、前言RT-ThreadEnv是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的menu
    的头像 发表于 08-29 12:22 2252次阅读
    在Ubuntu上<b class='flag-5'>开发</b>基于先楫MCU的RT-Thread应用指南

    基于开源鸿蒙打造的公路机电操作系统获“茅以升科学技术特等奖”!

    2025年8月26日,茅以升科教基金会道路交通委员会发布了2024年度“茅以升科学技术奖—交通运输科学技术奖”表彰决定。其中,由深开鸿等多家单位、企业共同基于开源鸿蒙操作系统开发完成的《公路机电
    的头像 发表于 08-28 17:40 1182次阅读
    基于开源鸿蒙打造的公路机电<b class='flag-5'>操作系统</b>获“茅以升科学技术特等奖”!

    树莓派操作系统:版本、特性及设置完整指南!

    树莓派操作系统是什么?树莓派操作系统是由树莓派基金会专为树莓派开发的官方操作系统。它基于DebianLinux发行版,并针对树莓派的ARM架构进行了专门优化。树莓派
    的头像 发表于 07-28 18:26 2025次阅读
    树莓派<b class='flag-5'>操作系统</b>:版本、特性及设置完整指南!

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

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

    OpenHarmony2025年度竞赛训练营重磅开启

    OpenHarmony 中国技术大会进行,具体时间另行通知) 赛题范围 1、固定赛题赛道 2、开放AI应用赛道: 基于OpenHarmony操作系统开发AI相关应用。 赛题详情请您关
    的头像 发表于 07-16 11:51 1119次阅读

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

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