開(kāi)發(fā)繁瑣,輔助工具SIG應(yīng)運(yùn)而生
隨著國(guó)內(nèi)信息化市場(chǎng)的逐步成長(zhǎng),以 OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)為基座,國(guó)產(chǎn)化操作系統(tǒng)為代表的創(chuàng)新產(chǎn)業(yè)匯聚了眾多開(kāi)發(fā)者的加入。對(duì)應(yīng)用開(kāi)發(fā)者,OpenHarmony 采用了多種分布式技術(shù),使應(yīng)用開(kāi)發(fā)與不同終端設(shè)備的形態(tài)差異無(wú)關(guān);對(duì)設(shè)備開(kāi)發(fā)者,OpenHarmony 采用了組件化的設(shè)計(jì)方案,可根據(jù)設(shè)備的資源能力和業(yè)務(wù)特征靈活裁剪。使得 OpenHarmony 成為眾多開(kāi)發(fā)者青睞的開(kāi)源項(xiàng)目。
然而,在 OpenHarmony 操作系統(tǒng)層面能力有待提升,需要系統(tǒng)開(kāi)發(fā)者增強(qiáng)系統(tǒng)能力,諸如 NAPI 框架代碼的重復(fù)率問(wèn)題、開(kāi)機(jī)動(dòng)畫展現(xiàn)受限和代碼語(yǔ)言開(kāi)發(fā)難度大等。
(1)NAPI 框架代碼重復(fù)率問(wèn)題。面對(duì)不同的 TS 接口,開(kāi)發(fā)者都需實(shí)現(xiàn)相似度極高的框架代碼,工作較為繁瑣;
(2)開(kāi)機(jī)動(dòng)畫展現(xiàn)受限。開(kāi)機(jī)動(dòng)畫是一種特殊壓縮格式的圖片資源文件,僅有圖片集或視頻資源,開(kāi)發(fā)者無(wú)法在各發(fā)行版和定制版進(jìn)行定制化展現(xiàn);
(3)代碼語(yǔ)言開(kāi)發(fā)難度大。對(duì)于存量接口或者已有 C/C++ 接口,開(kāi)發(fā)者需要把 C/C++ 頭文件手寫為 IDL 文件。雙方語(yǔ)言不同,熟悉 C/C++ 頭文件語(yǔ)法的同時(shí)還要熟悉 IDL 語(yǔ)法,造成手寫難度很大,影響了開(kāi)發(fā)效率。
為豐富 OpenHarmony 社區(qū)生態(tài),深圳開(kāi)鴻數(shù)字產(chǎn)業(yè)發(fā)展有限公司(以下簡(jiǎn)稱“深開(kāi)鴻”)申請(qǐng)并由 PMC 核準(zhǔn)成立輔助工具 SIG,負(fù)責(zé) OpenHarmony 社區(qū)特定子領(lǐng)域及創(chuàng)新項(xiàng)目的架構(gòu)設(shè)計(jì)、開(kāi)源開(kāi)發(fā)及項(xiàng)目維護(hù)等工作。
對(duì)癥解決,輔助工具SIG化解疑難
輔助工具 SIG 主要用于輔助 OpenHarmony 操作系統(tǒng)開(kāi)發(fā),針對(duì)圖形子系統(tǒng)中開(kāi)機(jī)動(dòng)畫的快速定制,通過(guò)優(yōu)化驅(qū)動(dòng) HDF 框架 HDI 接口的開(kāi)發(fā)流程,系統(tǒng)框架層與應(yīng)用層間接口 NAPI 的開(kāi)發(fā)流程等環(huán)節(jié),提高開(kāi)發(fā)效率。為構(gòu)建開(kāi)放繁榮的 OpenHarmony 社區(qū)生態(tài)添磚加瓦。
NAPI框架代碼生成工具
OpenHarmony 各子系統(tǒng)的諸多能力需對(duì)應(yīng)用開(kāi)放,NAPI 框架代碼生成工具需求尤為迫切。針對(duì) NAPI 在開(kāi)發(fā)過(guò)程中的大量需求,開(kāi)發(fā)效率低且重復(fù)率高等問(wèn)題,深開(kāi)鴻專項(xiàng)小組根據(jù)社區(qū)開(kāi)發(fā)環(huán)境和版本計(jì)劃,從 NAPI 工具開(kāi)發(fā)環(huán)節(jié)切入,經(jīng)過(guò)夜以繼日的攻堅(jiān),實(shí)現(xiàn)了 NAPI 框架代碼生成工具。用戶可根據(jù)指定路徑的 TS 接口文件,一鍵生成 NAPI 代碼框架、業(yè)務(wù)代碼框架、GN 文件。
SIG倉(cāng)地址:https://gitee.com/openharmony-sig/napi_generator
框架層開(kāi)發(fā)者也無(wú)需再關(guān)注 Nodejs 相關(guān)語(yǔ)法,C++ 與 JS 之間的接口類型轉(zhuǎn)換、數(shù)據(jù)類型轉(zhuǎn)換,只需關(guān)注業(yè)務(wù)實(shí)現(xiàn)邏輯準(zhǔn)確性。NAPI 框架代碼生成工具的應(yīng)用,極大提升了開(kāi)發(fā)效率。
開(kāi)機(jī)動(dòng)畫生成工具
開(kāi)發(fā)者在只有圖片集或者 mp4 文件的情況下,可以使用開(kāi)機(jī)動(dòng)畫生成工具,一鍵生成開(kāi)機(jī)動(dòng)畫文件,并支持在 PC 上查看其效果。后續(xù),該工具將實(shí)現(xiàn)一鍵進(jìn)入開(kāi)發(fā)板展現(xiàn)開(kāi)機(jī)動(dòng)畫的功能演進(jìn)。目前,開(kāi)機(jī)動(dòng)畫生成工具已支持設(shè)置開(kāi)機(jī)動(dòng)畫的分辨率、旋轉(zhuǎn)角度、翻轉(zhuǎn)鏡像等功能,也可為各發(fā)行版和定制版生成定制化開(kāi)機(jī)動(dòng)畫。
開(kāi)機(jī)動(dòng)畫生成工具已經(jīng)成功進(jìn)入 OpenHarmony master 分支供廣大開(kāi)發(fā)者使用。
代碼倉(cāng)地址:https://gitee.com/openharmony/graphic_standard/tree/master/frameworks/bootanimation/data/bootanimation_tool
HDI生成工具
當(dāng)客戶端與服務(wù)器通信時(shí),需要定義雙方都認(rèn)可的接口,以保障雙方可成功通信。IDL(Interface Definition Language) 則是一種定義此類接口的語(yǔ)言,包含面向應(yīng)用程序的北向接口和面向硬件設(shè)備的南向接口。
應(yīng)用 HDI 生成工具后,開(kāi)發(fā)者無(wú)需過(guò)多關(guān)注 IDL 的語(yǔ)法,只需定義最熟悉、最擅長(zhǎng)的 C/C++ 接口文件,使用工具,即可生成 IDL 文件。另外,現(xiàn)存的大量 C/C++ 頭文件,開(kāi)發(fā)者借此工具可以自動(dòng)將其轉(zhuǎn)換為 IDL 文件,以提高 HDI 開(kāi)發(fā)效率。
代碼倉(cāng)地址:https://gitee.com/openharmony/drivers_framework/tree/master/tools/idl-gen
技術(shù)拆解,秒懂輔助工具SIG
NAPI框架代碼生成工具
1、軟件架構(gòu)
2、代碼目錄及說(shuō)明
├── napi_tool # NAPI框架代碼生成工具│ ├── doc # 工具當(dāng)前能力、版本規(guī)劃│ ├── image # 圖片資源文件│ ├── output # 工具對(duì)應(yīng)的可執(zhí)行程序與插件程序│ ├── code # 工具源碼│ └── README # 工具使用指導(dǎo) └──README
3、使用場(chǎng)景
(1)命令行
① Windows環(huán)境
② Linux環(huán)境
(2)插件
① 插件安裝
② .d.ts 上點(diǎn)擊右鍵,選擇 .d.ts 生成 c++ 選項(xiàng),即可生成 NAPI 框架代碼。
安裝步驟:https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/INSTRUCTION_ZH.md
開(kāi)機(jī)動(dòng)畫生成工具
1、軟件架構(gòu)
開(kāi)機(jī)動(dòng)畫的壓縮格式如下,以此依據(jù),設(shè)計(jì)開(kāi)機(jī)動(dòng)畫生成工具:
struct HeaderInfo { uint32_t type; 占4個(gè)字節(jié), 固定值2 uint32_t offset; 占4個(gè)字節(jié),與上一幀對(duì)比,像素開(kāi)始不同的位置 uint32_t length; 占4個(gè)字節(jié),壓縮前數(shù)據(jù)長(zhǎng)度 uint32_t clen; 占4個(gè)字節(jié),壓縮后數(shù)據(jù)長(zhǎng)度 uint8_t mem[0]; 實(shí)際的壓縮數(shù)據(jù)}
bootanimation.raw 壓縮文件格式如下:
2、代碼目錄及說(shuō)明
├── bootanimation_tool # 開(kāi)機(jī)動(dòng)畫生成工具│ ├── raw_maker.py # 開(kāi)機(jī)動(dòng)畫生成│ ├── raw_player.py # 開(kāi)機(jī)動(dòng)畫查看│ └── README # 工具使用指導(dǎo)
3、使用場(chǎng)景
(1)使用方法
python raw_maker.py (-m <*.mp4> | -i
(2)參數(shù)說(shuō)明
-h, --help # 查看命令幫助并退出-m <*.mp4>, --mp4 <*.mp4> # <*.mp4>源文件-i
HDI生成工具
2、代碼目錄及說(shuō)明
├──h2idl_tool # H轉(zhuǎn)IDL代碼生成工具│ ├── docs # 工具當(dāng)前能力、版本規(guī)劃│ ├── out # 生成的IDL文件│ ├── testcase # 工具的測(cè)試用例│ ├── thirdparty # 使用的三方解析庫(kù)│ ├──_header_parser.py # C/C++頭文件解析│ └── idl_generator.py # IDL文件生成
3、使用場(chǎng)景
(1)使用方法
pythonidl_generator.py-f<*.h>-o
(2)參數(shù)說(shuō)明
-h, --help # Show this help message and exit-v, --version # Display version information-f <*.h>, --file <*.h> # Compile the C/C++ header file-o
審核編輯:郭婷
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7097瀏覽量
124976 -
C++
+關(guān)注
關(guān)注
22文章
2117瀏覽量
74794
原文標(biāo)題:全面提速 | 輔助工具SIG助力OpenHarmony代碼開(kāi)發(fā)
文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
潤(rùn)開(kāi)鴻推出基于OpenHarmony的桌面操作系統(tǒng)及AI PC工作站
基于LuatOS核心庫(kù)的實(shí)時(shí)操作系統(tǒng)開(kāi)發(fā):從理論到實(shí)踐~

求助,關(guān)于iMX DDR3寄存器編程輔助問(wèn)題求解
國(guó)產(chǎn)銀河麒麟操作系統(tǒng)V10和星光麒麟V1.0操作系統(tǒng)如何選擇?

deepin操作系統(tǒng)介紹

名單公布!【書籍評(píng)測(cè)活動(dòng)NO.53】鴻蒙操作系統(tǒng)設(shè)計(jì)原理與架構(gòu)
迅為RK3588開(kāi)發(fā)板Android系統(tǒng)開(kāi)發(fā)筆記-使用ADB工具
實(shí)時(shí)操作系統(tǒng)開(kāi)發(fā)工具:鴻道Intewell Developer介紹

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

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

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

鴻蒙OpenHarmony南向/北向快速開(kāi)發(fā)教程-迅為RK3568開(kāi)發(fā)板
名單公布!【書籍評(píng)測(cè)活動(dòng)NO.38】OpenHarmony開(kāi)發(fā)與實(shí)踐 | 基于紅莓RK2206開(kāi)發(fā)板
嵌入式實(shí)時(shí)操作系統(tǒng):Intewell操作系統(tǒng)與VxWorks操作系統(tǒng)有啥區(qū)別

評(píng)論