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

    文章

    6703

    浏览量

    123155
  • C++
    C++
    +关注

    关注

    21

    文章

    2102

    浏览量

    73460

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    基于Openharmony轻量级操作系统的分布式数据管理开发案例

    实验内容本例程演示如何在小凌派-RK2206开发板上使用OpenHarmony轻量级操作系统进行KvStore(即分布式数据管理)数据读写。例程:(1)创建两个线程,一个负责写入KvStore存储
    的头像 发表于 08-07 08:23 814次阅读
    基于<b class='flag-5'>Openharmony</b>轻量级<b class='flag-5'>操作系统</b>的分布式数据管理<b class='flag-5'>开发</b>案例

    鸿蒙OpenHarmony南向/北向快速开发教程-迅RK3568开发

    4.1学习之旅了吗?快来加入我们,一起探索鸿蒙4.1系统的无限魅力吧! 【北京迅OpenHarmony学习开发系列教程(第1期 北向基础篇一) P0_先导课 P1_
    发表于 07-23 10:44

    名单公布!【书籍评测活动NO.38】OpenHarmony开发与实践 | 基于红莓RK2206开发

    OpenHarmony操作系统开发和应用的工程师、学生等读者,也适合想要了解OpenHarmony操作系统的技术爱好者和初学者。读者应具备一定的嵌入式
    发表于 07-19 10:57

    龙芯2K0300蜂鸟板支持OpenHarmony 4.0 Release版本操作系统

    OpenHarmony操作系统,可以为开发者提供更多的选择。本次发售的2K0300蜂鸟开发板内置OpenHarmony 4.0 Relea
    发表于 06-20 10:02

    求助,请问你们开发产品时使用的什么操作系统

    开发产品时,你会使用什么操作系统呢? 使用了操作系统会不会影响执行效率呢?请各位大神们给个意见呀。 我在开发一个产品,现在遇到这个问题,写不带系统
    发表于 05-14 08:06

    再谈嵌入式实时操作系统

    程序的可移植性得到了增强,系统开发的工作量减轻的同时也提高了开发效率。对实时性和可靠性日益增长的要求正在塑造某些现代领域的嵌入式实时操作系统的发展方向,例如航空航天、工业控制、汽车电子、能源电力和医疗
    的头像 发表于 04-09 17:27 726次阅读
    再谈嵌入式实时<b class='flag-5'>操作系统</b>

    fpga开发一般用什么软件

    此外,还有一些其他的辅助工具,如用于数字信号处理开发的System Generator,以及用于HDL语言仿真的ModelSim等。这些工具可以配合上述的主要FPGA开发软件使用,提高
    的头像 发表于 03-27 14:54 3610次阅读

    【工作准备】OpenHarmony鸿蒙操作系统开发——基础必备软件

    前言 在下根据多年 OpenHarmony 内核及多个子系统开发经验,将用到的必备工具软件列出一张清单,供新同学参考。如何精进?请自行搜索专业手册进行学习,我是碰到什么问题、需要什么
    的头像 发表于 02-23 15:51 1644次阅读
    【工作准备】<b class='flag-5'>OpenHarmony</b>鸿蒙<b class='flag-5'>操作系统开发</b>——基础必备软件

    QE for Motor V1.3.0:汽车开发辅助工具解决方案工具

    电子发烧友网站提供《QE for Motor V1.3.0:汽车开发辅助工具解决方案工具包.pdf》资料免费下载
    发表于 02-19 10:44 0次下载
    QE for Motor V1.3.0:汽车<b class='flag-5'>开发</b><b class='flag-5'>辅助工具</b>解决方案<b class='flag-5'>工具</b>包

    解决方案工具包QE显示[RX,RA]V3.2.0:用于显示应用程序的开发辅助工具

    电子发烧友网站提供《解决方案工具包QE显示[RX,RA]V3.2.0:用于显示应用程序的开发辅助工具.pdf》资料免费下载
    发表于 01-03 09:59 0次下载
    解决方案<b class='flag-5'>工具</b>包QE显示[RX,RA]V3.2.0:用于显示应用程序的<b class='flag-5'>开发</b><b class='flag-5'>辅助工具</b>

    openharmony开发应用

    OpenHarmony开发应用的各方面细节与优势,开发者们提供全方位的指导和了解。 OpenHarmony是华为自行研发的分布式
    的头像 发表于 12-19 09:42 629次阅读

    SimSurfing静噪滤波器设计辅助工具高功能版操作手册

    电子发烧友网站提供《SimSurfing静噪滤波器设计辅助工具高功能版操作手册.pdf》资料免费下载
    发表于 11-22 09:59 1次下载
    SimSurfing静噪滤波器设计<b class='flag-5'>辅助工具</b>高功能版<b class='flag-5'>操作</b>手册