開發(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)
2、代碼目錄及說明
├── napi_tool # NAPI框架代碼生成工具│ ├── doc # 工具當(dāng)前能力、版本規(guī)劃│ ├── image # 圖片資源文件│ ├── output # 工具對應(yīng)的可執(zhí)行程序與插件程序│ ├── code # 工具源碼│ └── README # 工具使用指導(dǎo) └──README
3、使用場景
(1)命令行
① Windows環(huán)境
② Linux環(huán)境
(2)插件
① 插件安裝
② .d.ts 上點(diǎn)擊右鍵,選擇 .d.ts 生成 c++ 選項,即可生成 NAPI 框架代碼。
安裝步驟:https://gitee.com/openharmony-sig/napi_generator/blob/master/docs/INSTRUCTION_ZH.md
開機(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 壓縮文件格式如下:
2、代碼目錄及說明
├── bootanimation_tool # 開機(jī)動畫生成工具│ ├── raw_maker.py # 開機(jī)動畫生成│ ├── raw_player.py # 開機(jī)動畫查看│ └── README # 工具使用指導(dǎo)
3、使用場景
(1)使用方法
python raw_maker.py (-m <*.mp4> | -i
(2)參數(shù)說明
-h, --help # 查看命令幫助并退出-m <*.mp4>, --mp4 <*.mp4> # <*.mp4>源文件-i
HDI生成工具
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
審核編輯:郭婷
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6688瀏覽量
123140 -
C++
+關(guān)注
關(guān)注
21文章
2102瀏覽量
73453
原文標(biāo)題:全面提速 | 輔助工具SIG助力OpenHarmony代碼開發(fā)
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論