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