成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

??51CTO 開源基礎軟件社區??

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

前言

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

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

參考資料

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

使用環境

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

工具簡介及下載

NAPI框架代碼生成工具,它可以根據用戶指定路徑下的ts(typescript)接口文件一鍵生成NAPI框架代碼、業務代碼框架、GN文件等。NAPI框架生成工具支持三種入口,分別是可執行程序、VS Code插件、IntelliJ插件,使用者可以根據自己的需要選擇合適的工具,本人IntelliJ插件沒嘗試過,主要介紹一下可執行程序以及VS code 插件的使用,這兩者也會比較常用一點。
可執行文件、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可執行程序
|── napi_generator-win.exe # Windows可執行程序
└── napi_generator-macos # Mac可執行程序

使用方法

一、預檢查

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

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$

二、生成框架

通過可執行程序生成(Linux環境下)

  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。

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

三、生成文件總結

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

后記

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

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

??51CTO 開源基礎軟件社區??

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

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

2023-03-14 21:29:26

MysubsysNAPI框架

2024-01-03 15:41:49

2023-04-04 09:15:10

NAPI 框架鴻蒙

2021-09-16 15:08:08

鴻蒙HarmonyOS應用

2022-10-11 15:04:28

NAPI開發鴻蒙

2022-07-19 20:04:31

NAPI模塊鴻蒙

2022-10-25 15:05:17

NAPI開發鴻蒙

2023-06-12 08:00:48

Napi-rsRust 前端工具

2023-04-26 15:29:35

NAPI模塊鴻蒙

2021-12-08 15:07:51

鴻蒙HarmonyOS應用

2021-05-06 10:33:30

C++Napiv8

2022-10-09 15:05:50

NAPI框架鴻蒙

2021-12-06 06:19:03

鴻蒙HarmonyOS應用

2023-03-24 14:47:24

NAPI框架HDF框架

2023-03-16 15:29:57

鴻蒙工具

2022-05-12 14:42:17

項目開發Napi實現

2022-03-03 08:30:41

GeneratorES6函數

2023-03-22 09:23:53

I2C總線溫度傳感器

2022-04-06 11:27:05

harmonyeTS 開發NAPI開發

2021-06-06 08:30:29

N-APIPromiseAPI
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线视频免费 | 欧美成人a | 国产精品揄拍一区二区 | 天天天天操 | 一级黄色播放 | 狠狠的操 | 91精品久久久久久久久久 | 日韩中文字幕一区 | 国产精品中文 | 国产在线视频一区 | 91一区二区三区 | 在线播放国产视频 | 青草久久免费视频 | 日韩精品色网 | 欧美黄色网络 | 亚洲精品视频在线 | av日韩在线播放 | 99精品免费久久久久久久久日本 | 男人视频网站 | 干出白浆视频 | 黑人巨大精品 | 午夜激情网| 亚洲精品久久久蜜桃 | 日韩中文一区 | 亚洲福利片 | 午夜成人免费视频 | 国产精品毛片无码 | 久久国产精品网站 | 欧美一区二区三区电影 | 精品精品视频 | 日韩中文字幕一区 | 日本三级电影免费观看 | 久久久久九九九女人毛片 | 国产一区二区三区在线看 | 一区欧美 | 波多野结衣一区二区 | 久久久国产一区 | 羞羞视频网站免费看 | 97视频人人澡人人爽 | 超碰导航 | 亚洲欧美在线一区 |