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

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

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

??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??

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

前言

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

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

參考資料

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

使用環(huán)境

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

工具簡(jiǎn)介及下載

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

下載文件說(shuō)明:

      |── 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í)行程序

使用方法

一、預(yù)檢查

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

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$

二、生成框架

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

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

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

  1. 運(yùn)行成功后會(huì)在out目錄下生成框架代碼文件,如下所示:

Windows 上的方法與Linux上的類似,可以自行參考倉(cāng)庫(kù)教程進(jìn)行嘗試。

通過(guò)VS code插件生成

打開(kāi)VS code,在左側(cè)邊欄中選擇插件,點(diǎn)擊右上角的三個(gè)小圓點(diǎn),選擇從VISI安裝,注意如果代碼在遠(yuǎn)程服務(wù)器的話要將插件文件下載到服務(wù)器上,選擇在服務(wù)器進(jìn)行安裝。

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

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

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

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

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

三、生成文件總結(jié)

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

后記

本篇簡(jiǎn)單介紹了一下工具的安裝和使用,后面一篇文章將會(huì)用實(shí)例進(jìn)行演示。

??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??

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

責(zé)任編輯:jianghua 來(lái)源: 51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

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應(yīng)用

2022-10-11 15:04:28

NAPI開(kāi)發(fā)鴻蒙

2022-10-25 15:05:17

NAPI開(kāi)發(fā)鴻蒙

2022-07-19 20:04:31

NAPI模塊鴻蒙

2023-06-12 08:00:48

Napi-rsRust 前端工具

2023-04-26 15:29:35

NAPI模塊鴻蒙

2022-10-09 15:05:50

NAPI框架鴻蒙

2021-12-08 15:07:51

鴻蒙HarmonyOS應(yīng)用

2021-05-06 10:33:30

C++Napiv8

2021-12-06 06:19:03

鴻蒙HarmonyOS應(yīng)用

2023-03-24 14:47:24

NAPI框架HDF框架

2022-03-03 08:30:41

GeneratorES6函數(shù)

2023-03-16 15:29:57

鴻蒙工具

2022-05-12 14:42:17

項(xiàng)目開(kāi)發(fā)Napi實(shí)現(xiàn)

2022-04-06 11:27:05

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

2023-03-22 09:23:53

I2C總線溫度傳感器

2022-06-09 14:23:22

彩燈控制器RGB LED
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩一区二区在线播放 | 亚洲成人一区二区 | 中文字幕一区二区三区精彩视频 | 国产精品久久久久久婷婷天堂 | 一级中国毛片 | 国产欧美一区二区三区另类精品 | 国产伦精品一区二区三区精品视频 | 中文字幕欧美一区 | 福利电影在线 | 一区二区在线 | 一区二区三区国产 | a免费视频 | 全免费a级毛片免费看视频免费下 | 精品国产成人 | 日韩色图视频 | 国产精品久久久久久亚洲调教 | 亚洲精品性视频 | 天堂一区| 天天久久| 国产精品欧美一区二区 | 精品日韩一区二区 | 91动漫在线观看 | 亚洲欧美国产精品久久 | 色综合九九 | 91精品国产综合久久久久蜜臀 | 日韩在线日韩 | 久热精品在线观看视频 | 亚洲欧美日本在线 | 婷婷五月色综合香五月 | 最新国产精品精品视频 | www久久爱| 最新国产精品 | 国产成人精品一区二区在线 | 激情国产在线 | 一区二区三区精品在线 | av官网在线 | 91影院在线观看 | 国产美女永久免费无遮挡 | 美女露尿口视频 | 午夜久久久 | 亚洲精品福利视频 |