0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用輔助工具SIG為OpenHarmony操作系統(tǒng)開發(fā)化解疑難

OpenAtom OpenHarmony ? 來源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-03-15 10:27 ? 次閱讀

開發(fā)繁瑣,輔助工具SIG應(yīng)運(yùn)而生

隨著國內(nèi)信息化市場的逐步成長,以 OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)為基座,國產(chǎn)化操作系統(tǒng)為代表的創(chuàng)新產(chǎn)業(yè)匯聚了眾多開發(fā)者的加入。對應(yīng)用開發(fā)者,OpenHarmony 采用了多種分布式技術(shù),使應(yīng)用開發(fā)與不同終端設(shè)備的形態(tài)差異無關(guān);對設(shè)備開發(fā)者,OpenHarmony 采用了組件化的設(shè)計方案,可根據(jù)設(shè)備的資源能力和業(yè)務(wù)特征靈活裁剪。使得 OpenHarmony 成為眾多開發(fā)者青睞的開源項目。

然而,在 OpenHarmony 操作系統(tǒng)層面能力有待提升,需要系統(tǒng)開發(fā)者增強(qiáng)系統(tǒng)能力,諸如 NAPI 框架代碼的重復(fù)率問題、開機(jī)動畫展現(xiàn)受限和代碼語言開發(fā)難度大等。

(1)NAPI 框架代碼重復(fù)率問題。面對不同的 TS 接口,開發(fā)者都需實(shí)現(xiàn)相似度極高的框架代碼,工作較為繁瑣;

(2)開機(jī)動畫展現(xiàn)受限。開機(jī)動畫是一種特殊壓縮格式的圖片資源文件,僅有圖片集或視頻資源,開發(fā)者無法在各發(fā)行版和定制版進(jìn)行定制化展現(xiàn);

(3)代碼語言開發(fā)難度大。對于存量接口或者已有 C/C++ 接口,開發(fā)者需要把 C/C++ 頭文件手寫為 IDL 文件。雙方語言不同,熟悉 C/C++ 頭文件語法的同時還要熟悉 IDL 語法,造成手寫難度很大,影響了開發(fā)效率。

為豐富 OpenHarmony 社區(qū)生態(tài),深圳開鴻數(shù)字產(chǎn)業(yè)發(fā)展有限公司(以下簡稱“深開鴻”)申請并由 PMC 核準(zhǔn)成立輔助工具 SIG,負(fù)責(zé) OpenHarmony 社區(qū)特定子領(lǐng)域及創(chuàng)新項目的架構(gòu)設(shè)計、開源開發(fā)及項目維護(hù)等工作。

對癥解決,輔助工具SIG化解疑難

輔助工具 SIG 主要用于輔助 OpenHarmony 操作系統(tǒng)開發(fā),針對圖形子系統(tǒng)中開機(jī)動畫的快速定制,通過優(yōu)化驅(qū)動 HDF 框架 HDI 接口的開發(fā)流程,系統(tǒng)框架層與應(yīng)用層間接口 NAPI 的開發(fā)流程等環(huán)節(jié),提高開發(fā)效率。為構(gòu)建開放繁榮的 OpenHarmony 社區(qū)生態(tài)添磚加瓦。

NAPI框架代碼生成工具

OpenHarmony 各子系統(tǒng)的諸多能力需對應(yīng)用開放,NAPI 框架代碼生成工具需求尤為迫切。針對 NAPI 在開發(fā)過程中的大量需求,開發(fā)效率低且重復(fù)率高等問題,深開鴻專項小組根據(jù)社區(qū)開發(fā)環(huán)境和版本計劃,從 NAPI 工具開發(fā)環(huán)節(jié)切入,經(jīng)過夜以繼日的攻堅,實(shí)現(xiàn)了 NAPI 框架代碼生成工具。用戶可根據(jù)指定路徑的 TS 接口文件,一鍵生成 NAPI 代碼框架、業(yè)務(wù)代碼框架、GN 文件。

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

框架層開發(fā)者也無需再關(guān)注 Nodejs 相關(guān)語法,C++ 與 JS 之間的接口類型轉(zhuǎn)換、數(shù)據(jù)類型轉(zhuǎn)換,只需關(guān)注業(yè)務(wù)實(shí)現(xiàn)邏輯準(zhǔn)確性。NAPI 框架代碼生成工具的應(yīng)用,極大提升了開發(fā)效率。

開機(jī)動畫生成工具

開發(fā)者在只有圖片集或者 mp4 文件的情況下,可以使用開機(jī)動畫生成工具,一鍵生成開機(jī)動畫文件,并支持在 PC 上查看其效果。后續(xù),該工具將實(shí)現(xiàn)一鍵進(jìn)入開發(fā)板展現(xiàn)開機(jī)動畫的功能演進(jìn)。目前,開機(jī)動畫生成工具已支持設(shè)置開機(jī)動畫的分辨率、旋轉(zhuǎn)角度、翻轉(zhuǎn)鏡像等功能,也可為各發(fā)行版和定制版生成定制化開機(jī)動畫。

開機(jī)動畫生成工具已經(jīng)成功進(jìn)入 OpenHarmony master 分支供廣大開發(fā)者使用。

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

HDI生成工具

當(dāng)客戶端與服務(wù)器通信時,需要定義雙方都認(rèn)可的接口,以保障雙方可成功通信。IDL(Interface Definition Language) 則是一種定義此類接口的語言,包含面向應(yīng)用程序的北向接口和面向硬件設(shè)備的南向接口。

應(yīng)用 HDI 生成工具后,開發(fā)者無需過多關(guān)注 IDL 的語法,只需定義最熟悉、最擅長的 C/C++ 接口文件,使用工具,即可生成 IDL 文件。另外,現(xiàn)存的大量 C/C++ 頭文件,開發(fā)者借此工具可以自動將其轉(zhuǎn)換為 IDL 文件,以提高 HDI 開發(fā)效率。

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

技術(shù)拆解,秒懂輔助工具SIG

NAPI框架代碼生成工具

1、軟件架構(gòu)

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

2、代碼目錄及說明

├── napi_tool # NAPI框架代碼生成工具│ ├── doc # 工具當(dāng)前能力、版本規(guī)劃│ ├── image # 圖片資源文件│ ├── output # 工具對應(yīng)的可執(zhí)行程序與插件程序│ ├── code # 工具源碼│ └── README # 工具使用指導(dǎo) └──README

3、使用場景

(1)命令行

① Windows環(huán)境

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

Linux環(huán)境

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

(2)插件

① 插件安裝

② .d.ts 上點(diǎn)擊右鍵,選擇 .d.ts 生成 c++ 選項,即可生成 NAPI 框架代碼。

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

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

開機(jī)動畫生成工具

1、軟件架構(gòu)

開機(jī)動畫的壓縮格式如下,以此依據(jù),設(shè)計開機(jī)動畫生成工具:

struct HeaderInfo { uint32_t type; 占4個字節(jié), 固定值2 uint32_t offset; 占4個字節(jié),與上一幀對比,像素開始不同的位置 uint32_t length; 占4個字節(jié),壓縮前數(shù)據(jù)長度 uint32_t clen; 占4個字節(jié),壓縮后數(shù)據(jù)長度 uint8_t mem[0]; 實(shí)際的壓縮數(shù)據(jù)}

bootanimation.raw 壓縮文件格式如下:

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

2、代碼目錄及說明

├── bootanimation_tool # 開機(jī)動畫生成工具│ ├── raw_maker.py # 開機(jī)動畫生成│ ├── raw_player.py # 開機(jī)動畫查看│ └── README # 工具使用指導(dǎo)

3、使用場景

(1)使用方法

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

(2)參數(shù)說明

-h, --help # 查看命令幫助并退出-m <*.mp4>, --mp4 <*.mp4> # <*.mp4>源文件-i , --image # 源image文件存放路徑-o , --out # 制作開機(jī)動畫.raw 文件的輸出路徑 -d , --display # 設(shè)置開機(jī)動畫分辨率, 舉例:640x480-r , --rotate # 設(shè)置開機(jī)動畫旋轉(zhuǎn)角度, 舉例:90°,180°或270°-f,--flip#設(shè)置開機(jī)動畫是否翻轉(zhuǎn)

HDI生成工具

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

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

2、代碼目錄及說明

├──h2idl_tool # H轉(zhuǎn)IDL代碼生成工具│ ├── docs # 工具當(dāng)前能力、版本規(guī)劃│ ├── out # 生成的IDL文件│ ├── testcase # 工具的測試用例│ ├── thirdparty # 使用的三方解析庫│ ├──_header_parser.py # C/C++頭文件解析│ └── idl_generator.py # IDL文件生成

3、使用場景

(1)使用方法

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

(2)參數(shù)說明

-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

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6688

    瀏覽量

    123140
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2102

    瀏覽量

    73453

原文標(biāo)題:全面提速 | 輔助工具SIG助力OpenHarmony代碼開發(fā)

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    實(shí)時操作系統(tǒng)開發(fā)工具:鴻道Intewell Developer介紹

    鴻道Intewell Developer是鴻道Intewell操作系統(tǒng)的實(shí)時應(yīng)用開發(fā)環(huán)境,擁有可視化的操作界面,提供規(guī)范、統(tǒng)一、集中的配置入口,提供項目管理、編程開發(fā)環(huán)境、目標(biāo)機(jī)配置管
    的頭像 發(fā)表于 11-04 14:51 ?101次閱讀
    實(shí)時<b class='flag-5'>操作系統(tǒng)開發(fā)工具</b>:鴻道Intewell Developer介紹

    全新原生鴻蒙HarmonyOS NEXT發(fā)布,書寫國產(chǎn)操作系統(tǒng)新篇章!同時,觸覺智能發(fā)布OpenHarmony5.0固件

    10月22日,華為舉行“原生鴻蒙之夜暨華為全場景新品發(fā)布會”,正式用戶帶來基于OpenHarmony打造的全新原生鴻蒙操作系統(tǒng)HarmonyOS NEXT和華為多個全場景智能設(shè)備新品。與此同時,觸覺智能旗下鴻蒙
    的頭像 發(fā)表于 10-28 13:46 ?277次閱讀
    全新原生鴻蒙HarmonyOS NEXT發(fā)布,書寫國產(chǎn)<b class='flag-5'>操作系統(tǒng)</b>新篇章!同時,觸覺智能發(fā)布<b class='flag-5'>OpenHarmony</b>5.0固件

    利用仿真技術(shù)進(jìn)行智能制動系統(tǒng)開發(fā)

    在當(dāng)前的汽車行業(yè)中,安全性仍然是首要關(guān)注點(diǎn)之一。自動緊急制動系統(tǒng)(AEB)作為增強(qiáng)道路安全的核心技術(shù),正逐漸普及。該系統(tǒng)通過高級傳感器和算法來預(yù)測和應(yīng)對潛在的撞車風(fēng)險,極大提升了安全性。在 AEB 系統(tǒng)
    的頭像 發(fā)表于 09-05 09:38 ?279次閱讀
    <b class='flag-5'>利用</b>仿真技術(shù)進(jìn)行智能制動<b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>開發(fā)</b>

    基于Openharmony輕量級操作系統(tǒng)的分布式數(shù)據(jù)管理開發(fā)案例

    實(shí)驗內(nèi)容本例程演示如何在小凌派-RK2206開發(fā)板上使用OpenHarmony輕量級操作系統(tǒng)進(jìn)行KvStore(即分布式數(shù)據(jù)管理)數(shù)據(jù)讀寫。例程:(1)創(chuàng)建兩個線程,一個負(fù)責(zé)寫入KvStore存儲
    的頭像 發(fā)表于 08-07 08:23 ?807次閱讀
    基于<b class='flag-5'>Openharmony</b>輕量級<b class='flag-5'>操作系統(tǒng)</b>的分布式數(shù)據(jù)管理<b class='flag-5'>開發(fā)</b>案例

    鴻蒙OpenHarmony南向/北向快速開發(fā)教程-迅RK3568開發(fā)

    4.1學(xué)習(xí)之旅了嗎?快來加入我們,一起探索鴻蒙4.1系統(tǒng)的無限魅力吧! 【北京迅OpenHarmony學(xué)習(xí)開發(fā)系列教程(第1期 北向基礎(chǔ)篇一) P0_先導(dǎo)課 P1_
    發(fā)表于 07-23 10:44

    名單公布!【書籍評測活動NO.38】OpenHarmony開發(fā)與實(shí)踐 | 基于紅莓RK2206開發(fā)

    OpenHarmony操作系統(tǒng)開發(fā)和應(yīng)用的工程師、學(xué)生等讀者,也適合想要了解OpenHarmony操作系統(tǒng)的技術(shù)愛好者和初學(xué)者。讀者應(yīng)具備一定的嵌入式
    發(fā)表于 07-19 10:57

    龍芯2K0300蜂鳥板支持OpenHarmony 4.0 Release版本操作系統(tǒng)

    OpenHarmony操作系統(tǒng),可以為開發(fā)者提供更多的選擇。本次發(fā)售的2K0300蜂鳥開發(fā)板內(nèi)置OpenHarmony 4.0 Relea
    發(fā)表于 06-20 10:02

    求助,請問你們開發(fā)產(chǎn)品時使用的什么操作系統(tǒng)?

    開發(fā)產(chǎn)品時,你會使用什么操作系統(tǒng)呢? 使用了操作系統(tǒng)會不會影響執(zhí)行效率呢?請各位大神們給個意見呀。 我在開發(fā)一個產(chǎn)品,現(xiàn)在遇到這個問題,寫不帶系統(tǒng)
    發(fā)表于 05-14 08:06

    再談嵌入式實(shí)時操作系統(tǒng)

    程序的可移植性得到了增強(qiáng),系統(tǒng)開發(fā)的工作量減輕的同時也提高了開發(fā)效率。對實(shí)時性和可靠性日益增長的要求正在塑造某些現(xiàn)代領(lǐng)域的嵌入式實(shí)時操作系統(tǒng)的發(fā)展方向,例如航空航天、工業(yè)控制、汽車電子、能源電力和醫(yī)療
    的頭像 發(fā)表于 04-09 17:27 ?716次閱讀
    再談嵌入式實(shí)時<b class='flag-5'>操作系統(tǒng)</b>

    fpga開發(fā)一般用什么軟件

    此外,還有一些其他的輔助工具,如用于數(shù)字信號處理開發(fā)的System Generator,以及用于HDL語言仿真的ModelSim等。這些工具可以配合上述的主要FPGA開發(fā)軟件使用,提高
    的頭像 發(fā)表于 03-27 14:54 ?3540次閱讀

    【工作準(zhǔn)備】OpenHarmony鴻蒙操作系統(tǒng)開發(fā)——基礎(chǔ)必備軟件

    前言 在下根據(jù)多年 OpenHarmony 內(nèi)核及多個子系統(tǒng)開發(fā)經(jīng)驗,將用到的必備工具軟件列出一張清單,供新同學(xué)參考。如何精進(jìn)?請自行搜索專業(yè)手冊進(jìn)行學(xué)習(xí),我是碰到什么問題、需要什么
    的頭像 發(fā)表于 02-23 15:51 ?1637次閱讀
    【工作準(zhǔn)備】<b class='flag-5'>OpenHarmony</b>鴻蒙<b class='flag-5'>操作系統(tǒng)開發(fā)</b>——基礎(chǔ)必備軟件

    QE for Motor V1.3.0:汽車開發(fā)輔助工具解決方案工具

    電子發(fā)燒友網(wǎng)站提供《QE for Motor V1.3.0:汽車開發(fā)輔助工具解決方案工具包.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 10:44 ?0次下載
    QE for Motor V1.3.0:汽車<b class='flag-5'>開發(fā)</b><b class='flag-5'>輔助工具</b>解決方案<b class='flag-5'>工具</b>包

    解決方案工具包QE顯示[RX,RA]V3.2.0:用于顯示應(yīng)用程序的開發(fā)輔助工具

    電子發(fā)燒友網(wǎng)站提供《解決方案工具包QE顯示[RX,RA]V3.2.0:用于顯示應(yīng)用程序的開發(fā)輔助工具.pdf》資料免費(fèi)下載
    發(fā)表于 01-03 09:59 ?0次下載
    解決方案<b class='flag-5'>工具</b>包QE顯示[RX,RA]V3.2.0:用于顯示應(yīng)用程序的<b class='flag-5'>開發(fā)</b><b class='flag-5'>輔助工具</b>

    openharmony開發(fā)應(yīng)用

    OpenHarmony開發(fā)應(yīng)用的各方面細(xì)節(jié)與優(yōu)勢,開發(fā)者們提供全方位的指導(dǎo)和了解。 OpenHarmony是華為自行研發(fā)的分布式
    的頭像 發(fā)表于 12-19 09:42 ?616次閱讀

    SimSurfing靜噪濾波器設(shè)計輔助工具高功能版操作手冊

    電子發(fā)燒友網(wǎng)站提供《SimSurfing靜噪濾波器設(shè)計輔助工具高功能版操作手冊.pdf》資料免費(fèi)下載
    發(fā)表于 11-22 09:59 ?1次下載
    SimSurfing靜噪濾波器設(shè)計<b class='flag-5'>輔助工具</b>高功能版<b class='flag-5'>操作</b>手冊