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

    文章

    7328

    浏览量

    128622
  • C++
    C++
    +关注

    关注

    22

    文章

    2122

    浏览量

    76705

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

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

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

    KaihongOS操作系统:ArkTS语言基础

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

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

    本文介绍OpenHarmony5.0 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!由触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核
    的头像 发表于 03-28 18:05 1335次阅读
    鸿蒙北向<b class='flag-5'>开发</b><b class='flag-5'>OpenHarmony</b>5.0 DevEco Studio<b class='flag-5'>开发工具</b>安装与配置

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

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

    【北京迅】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识

    【北京迅】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识
    的头像 发表于 03-06 11:23 1007次阅读
    【北京迅<b class='flag-5'>为</b>】iTOP-RK3568<b class='flag-5'>OpenHarmony</b><b class='flag-5'>系统</b>南向驱动<b class='flag-5'>开发</b>GPIO基础知识

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

    OpenHarmony4.1 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备!
    的头像 发表于 02-07 17:35 1338次阅读
    鸿蒙北向<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 4211次阅读
    国产银河麒麟<b class='flag-5'>操作系统</b>V10和星光麒麟V1.0<b class='flag-5'>操作系统</b>如何选择?

    deepin操作系统介绍

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

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

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