自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Napi_generator(一)—NAPI框架生成工具介

系統(tǒng) OpenHarmony
在學習NAPI框架的過程中,偶然間在源碼下napi_generator目錄發(fā)現這么一款好用的工具,簡直是南向開發(fā)者的福音,通過NAPI框架生成工具,使用者可輸入一個接口定義的ts文件,一鍵生成NAPI框架代碼、業(yè)務代碼框架、GN腳本等文件,并使用生成的NAPI接口及功能。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區(qū)??

??https://ost.51cto.com??

前言

對于南向設備開發(fā)者進行OpenHarmony 標準系統(tǒng)應用開發(fā)來說,在進行設備開發(fā)的過程中,難免要與北向應用層打交道,為北向應用開發(fā)提供一些硬件控制的接口,這是就需南向開發(fā)者學習OpenHarmony提供的NAPI機制,而這又需要開發(fā)者了解JS/eTS的一些知識,關注Nodejs語法、C++與JS之間的數據類型轉換等上層應用轉換邏輯,通過了這幾天的學習也發(fā)現學習和使用NAPI確實要耗費挺大的精力。
在學習NAPI框架的過程中,偶然間在源碼下napi_generator目錄發(fā)現這么一款好用的工具,簡直是南向開發(fā)者的福音,通過NAPI框架生成工具,使用者可輸入一個接口定義的ts文件,一鍵生成NAPI框架代碼、業(yè)務代碼框架、GN腳本等文件,并使用生成的NAPI接口及功能。使用者也可以輸入一個定義方法的.h頭文件,反向生成ts文件。這讓開發(fā)者只關注底層業(yè)務邏輯即可,專業(yè)的人做專業(yè)的事,從而可以大大提高開發(fā)效率,下面先介紹一下這款工具的安裝和使用教程。

#創(chuàng)作者激勵# [FFH]napi_generator(一)——NAPI框架生成工具介紹-開源基礎軟件社區(qū)

參考資料

本工具由深開鴻公司開發(fā),這里也感謝將這么一款好用的工具開源,本篇對于工具的詳細使用,也大多出自文檔,可以參考napi_generator倉庫:
??NAPI框架生成工具使用說明——作者:深圳開鴻數字產業(yè)發(fā)展有限公司??對于NAPI機制,已經有許多博主介紹得很詳細了,不懂的童鞋可以先了解下:
NAPI組件倉庫
基于OpenHarmony Native Api框架實現控制LED燈亮滅。
三方庫移植之NAPI開發(fā)[1]—Hello OpenHarmony NAPI。
OpenHarmony 源碼解析之JavaScript API框架(NAPI)
標準設備應用開發(fā)—Native Api-開源基礎軟件社區(qū)-51CTO.COM。

使用環(huán)境

  • OpenHarmony-3.2-Beta5
  • 九聯(lián)UnionPi-Tiger開發(fā)板
  • Visual Studio Code(版本需1.62.0及以上)

工具簡介及下載

NAPI框架代碼生成工具,它可以根據用戶指定路徑下的ts(typescript)接口文件一鍵生成NAPI框架代碼、業(yè)務代碼框架、GN文件等。NAPI框架生成工具支持三種入口,分別是可執(zhí)行程序、VS Code插件、IntelliJ插件,使用者可以根據自己的需要選擇合適的工具,本人IntelliJ插件沒嘗試過,主要介紹一下可執(zhí)行程序以及VS code 插件的使用,這兩者也會比較常用一點。
可執(zhí)行文件、IntelliJ插件、VS Code插件下載路徑如下:
http://ftp.kaihong.com:5000/fsdownload/PC6uOorrM/NAPI。

下載文件說明:

      |── generator.jar           # IntelliJ插件
|── gnapi-0.0.1.vsix # VS Code插件
|── napi_generator-linux # Linux可執(zhí)行程序
|── napi_generator-win.exe # Windows可執(zhí)行程序
└── napi_generator-macos # Mac可執(zhí)行程序

使用方法

一、預檢查

napi_generator的可執(zhí)行程序方式和插件方式都具有預檢查的功能,如果.d.ts文件中存在語法錯誤,那么執(zhí)行的時候命令行會打印出錯誤信息,指出代碼中存在錯誤的行號。使用效果如下:

joey@joey-virtual-machine:~/code/napi_test$ ./napi_generator-linux -f @ohos.napitest.d.ts
@ohos.napitest.d.ts (33,12): Identifier expected.
@ohos.napitest.d.ts (33,13): ';' expected.
@ohos.napitest.d.ts (33,13): An identifier or keyword cannot immediately follow a numeric literal.
@ohos.napitest.d.ts (33,13): Cannot find name 'shutdownDevice'.
@ohos.napitest.d.ts (33,28): Cannot find name 'reason'.
@ohos.napitest.d.ts (33,34): ',' expected.
@ohos.napitest.d.ts (33,36): 'string' only refers to a type, but is being used as a value here.
@ohos.napitest.d.ts (33,43): ';' expected.
@ohos.napitest.d.ts (33,49): Expression expected.

joey@joey-virtual-machine:~/code/napi_test$

二、生成框架

通過可執(zhí)行程序生成(Linux環(huán)境下)

  1. 首先準備待轉換的.d.ts文件,這里選擇napi_generator/examples/ts下的@ohos.napitest.d.ts文件進行測試。若.d.ts文件中聲明了basic.d.ts文件,將basic.d.ts文件放置在待轉換.d.ts文件上一級目錄;若除此之外還聲明其它.d.ts文件,將此類文件放置在待轉換.d.ts文件同級目錄。
    此處在example下新建out文件夾,用于存放生成框架代碼。
cd napi_generator/examples/ts
mkdir ../out
  1. 運行napi_generator-linux,命令如下(~/tools/napi_generator-linux根據自己的下載位置更改):
~/tools/napi_generator-linux -f @ohos.napitest.d.ts -o ../out -i false -n int

其中,參數詳情如下: -f, 待轉換的.d.ts文件,若同時轉換多個文件,文件之間用“,”隔開; -d, 根據指定路徑轉換該文件夾中所有.d.ts文件; -i, 可選參數,默認false,待轉換.d.ts文件中引用非basic.d.ts的ts文件時打開開關; -o, 可選參數,默認為當前目錄,指定生成框架代碼輸出路徑; -n, 可選參數,默認為uint32_t,指定生成框架代碼中number類型全部為指定類型。
備注:-f與-d兩個參數只選其中一個參數即可。

  1. 運行成功后會在out目錄下生成框架代碼文件,如下所示:

Windows 上的方法與Linux上的類似,可以自行參考倉庫教程進行嘗試。

通過VS code插件生成

打開VS code,在左側邊欄中選擇插件,點擊右上角的三個小圓點,選擇從VISI安裝,注意如果代碼在遠程服務器的話要將插件文件下載到服務器上,選擇在服務器進行安裝。

選擇剛才下載的gnapi-0.0.1.vsix插件文件,再單擊確定進行安裝。

安裝完成后就會在VS Code的插件管理器中能看到gnapi這個插件了。

選擇需要轉換的.d.ts文件,若.d.ts文件中聲明了basic.d.ts文件,將basic.d.ts文件放置在待轉換.d.ts文件上一級目錄;若除此之外還聲明其它.d.ts文件,將此類文件放置在待轉換.d.ts文件同級目錄。例如napi_generator下的一個exampl,位于napi_generator/examples/ts/@ohos.napitest.d.ts下,右鍵文件選擇Generate Napi Frame。

工具彈出Generate Napi Frame彈窗,選擇Napi-Gen頁簽。接口文件文本框填寫.d.ts文件路徑;生成框架路徑文本框填寫生成框架存放路徑(這里我在example下新建了out目錄);編譯腳本路徑默認填寫;number目的類型此處選擇float,表示指定生成框架代碼中number類型全部為float類型。;啟用import功能不選擇(待轉換.d.ts文件未引用其它文件);點擊ok。

執(zhí)行結束后會在out目錄下生成框架代碼文件。

三、生成文件總結

  • napitest.cpp:生成的napitest.cpp文件中的接口即為.d.ts文件中定義的接口,開發(fā)者只需要使用C/C++實現對于的接口功能即可。
  • BUILD.gn: GN腳本,需要注意一點就是生成的BUILD.gn文件中的ace_napi路徑位置可能不準確,需根據自己的OpenHarmony進行修改,以及所屬子系統(tǒng),組件等,根據自己需要進行配置。
  • napitest_middle,tool_utility :NAPI中間文件,包括NAPI模塊定義,模塊注冊,接口工具都存放在里面。
  • napi_gen.log: 生成過程日志、

后記

本篇簡單介紹了一下工具的安裝和使用,后面一篇文章將會用實例進行演示。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區(qū)??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區(qū)
相關推薦

2023-03-14 21:29:26

MysubsysNAPI框架

2024-01-03 15:41:49

2021-09-16 15:08:08

鴻蒙HarmonyOS應用

2023-04-04 09:15:10

NAPI 框架鴻蒙

2022-10-25 15:05:17

NAPI開發(fā)鴻蒙

2022-07-19 20:04:31

NAPI模塊鴻蒙

2022-10-11 15:04:28

NAPI開發(fā)鴻蒙

2023-06-12 08:00:48

Napi-rsRust 前端工具

2022-10-09 15:05:50

NAPI框架鴻蒙

2023-04-26 15:29:35

NAPI模塊鴻蒙

2022-03-03 08:30:41

GeneratorES6函數

2023-03-24 14:47:24

NAPI框架HDF框架

2021-12-08 15:07:51

鴻蒙HarmonyOS應用

2021-05-06 10:33:30

C++Napiv8

2021-12-06 06:19:03

鴻蒙HarmonyOS應用

2021-04-22 21:15:38

Generator函數生成器

2022-04-06 11:27:05

harmonyeTS 開發(fā)NAPI開發(fā)

2022-06-09 14:23:22

彩燈控制器RGB LED

2022-05-12 14:42:17

項目開發(fā)Napi實現

2023-03-16 15:29:57

鴻蒙工具
點贊
收藏

51CTO技術棧公眾號