0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenHarmony有氧拳擊之設(shè)備端開(kāi)發(fā)

OpenAtom OpenHarmony ? 來(lái)源:OpenAtom OpenHarmony ? 作者:OpenAtom OpenHarmony ? 2022-08-13 10:34 ? 次閱讀

一、簡(jiǎn)介

在一個(gè)風(fēng)和日麗,陽(yáng)光明媚的下午,碼農(nóng)們都像往常一樣正在專注地碼代碼。突然前面的小哥哥站起來(lái),手握開(kāi)發(fā)板,來(lái)回出拳。這是怎么回事?

這是一款拳擊互動(dòng)游戲,本文將帶你一同解開(kāi)其中的奧秘。開(kāi)發(fā)者從中不僅能體驗(yàn)到學(xué)習(xí)知識(shí)的愉悅,還能享受到健身的樂(lè)趣。依托OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)3.2 Beta1操作系統(tǒng),樣例分為應(yīng)用端和設(shè)備端兩部分。本文主要介紹設(shè)備端的實(shí)現(xiàn),后續(xù)會(huì)分享應(yīng)用端的開(kāi)發(fā)。

設(shè)備端:采用小熊派BearPi-HM Nano(Hi3861)開(kāi)發(fā)板,處理加速度計(jì)傳感器數(shù)據(jù)。

應(yīng)用端:采用潤(rùn)和DAYU200(RK3568)開(kāi)發(fā)板,主要處理顯示及音效。

如下圖,左側(cè)為設(shè)備端,右側(cè)為應(yīng)用端:開(kāi)發(fā)者手握設(shè)備端小熊派開(kāi)發(fā)板,觀察屏幕,根據(jù)應(yīng)用端APP顯示,在指定的時(shí)間完成揮拳動(dòng)作;揮拳信息經(jīng)無(wú)線傳遞到應(yīng)用端,應(yīng)用端APP對(duì)揮拳時(shí)機(jī)有相應(yīng)的計(jì)分規(guī)則,最后統(tǒng)計(jì)出總分。

de1d38d8-1a85-11ed-ba43-dac502259ad0.png

二、原理

相比正常狀態(tài)下,揮拳動(dòng)作會(huì)引起手臂較大的加速度變化。根據(jù)這個(gè)特征,我們使用BearPi-HM_Nano開(kāi)發(fā)板的擴(kuò)展模塊E53_SC2,它內(nèi)部集成了MPU6050傳感器,能夠讀取加速度的大小。

做揮拳動(dòng)作實(shí)驗(yàn),統(tǒng)計(jì)數(shù)據(jù),得到揮拳時(shí)加速度的閾值。程序執(zhí)行時(shí),把實(shí)時(shí)的數(shù)據(jù)與閾值進(jìn)行比較,判斷是否觸發(fā)了揮拳動(dòng)作。再經(jīng)過(guò)無(wú)線通信,實(shí)時(shí)把數(shù)據(jù)發(fā)送到應(yīng)用端。

三、加速度計(jì)傳感器使用說(shuō)明

設(shè)備端的開(kāi)發(fā)關(guān)鍵在對(duì)加速度計(jì)傳感器的使用,主要涉及兩點(diǎn):1、重力加速度g的理解;2、如何把MPU6050寄存器的數(shù)據(jù)轉(zhuǎn)化為有單位的數(shù)據(jù)?

1、樣例使用的加速度傳感器是MPU6050,它有±2g、±4g、±8g和±16g四個(gè)量程可以選擇。一個(gè)g是指一個(gè)重力加速度,代表9.8米/秒2大小。舉個(gè)例子:假如設(shè)備從高處掉落,其加速計(jì)測(cè)量到的加速度將為0g,因?yàn)閭鞲衅鳑](méi)有受到力的擠壓,處在失重狀態(tài);假如設(shè)備水平放在桌面上,則加速計(jì)測(cè)量出的加速度為1g(9.8米/秒2),我們可以理解為受到1g的壓力;

2、MPU6050采用16位的ADC采樣。16位的ADC采樣是什么意思?舉個(gè)例子:如果量程選擇(通過(guò)寄存器選擇)是±2g,16位的ADC采樣,表示的含義是用65536(即2的16次方)種情況去表達(dá)-2到+2g的情況。如下datasheet截圖顯示,AFS_SEL=0,表示±2g量程,當(dāng)數(shù)據(jù)寄存器的數(shù)據(jù)為16384,對(duì)應(yīng)表示受到1g的力。例如:數(shù)據(jù)寄存器讀取到的值為X,對(duì)應(yīng)受到的力的大小為Y,則Y=X/16384,單位是g。

de6600f4-1a85-11ed-ba43-dac502259ad0.png

四、代碼解析

設(shè)備端代碼主要分為兩個(gè)線程:1、傳感器數(shù)據(jù)處理線程;2、TCP通信線程;它們之間通過(guò)事件的方式進(jìn)行同步通信。

1、傳感器數(shù)據(jù)處理線程主要函數(shù)說(shuō)明:


//E53_SC2模塊MPU6050傳感器數(shù)據(jù)處理主要流程static void DataHandleTask(void){    uint8_t ret;    ret = E53SC2Init();//MPU6050傳感器初始化及配置,配置為+—8g量程    if (ret != 0) {        printf("E53_SC2 Init failed!
");        return;    }    while (1)  {        ret = E53SC2ReadData(&data);//MPU6050傳感器寄存器數(shù)據(jù)讀取        if (ret != 0)  {            printf("E53_SC2 Read Data!
");            return;        }        AccDataHandle(&data);//MPU6050傳感器數(shù)據(jù)處理,轉(zhuǎn)化為單位為g的數(shù)據(jù)        if (myCaldata.Accel[ACCEL_X_AXIS] < 0) {            myCaldata.Accel[ACCEL_X_AXIS] = myCaldata.Accel[ACCEL_X_AXIS] * -1.0;         }        if (myCaldata.Accel[ACCEL_Y_AXIS] < 0) {            myCaldata.Accel[ACCEL_Y_AXIS] = myCaldata.Accel[ACCEL_Y_AXIS] * -1.0;         }        if (myCaldata.Accel[ACCEL_Z_AXIS] < 0) {            myCaldata.Accel[ACCEL_Z_AXIS] = myCaldata.Accel[ACCEL_Z_AXIS] * -1.0;         }        //判斷實(shí)時(shí)數(shù)據(jù)是否大于拳擊閾值Boxing_ACC,大于則設(shè)置事件       if (myCaldata.Accel[ACCEL_X_AXIS] > Boxing_ACC ||                          myCaldata.Accel[ACCEL_Y_AXIS] > Boxing_ACC || myCaldata.Accel[ACCEL_Z_AXIS] > Boxing_ACC) {            printf("MPU set flg
");            osEventFlagsSet(g_eventFlagsId, FLAGS_MSK1);//觸發(fā)拳擊事件        }        usleep(Delay_10ms);    }}#define MAX_POS_NUM 32767#define LSB 4096.0//MPU6050傳感器數(shù)據(jù)處理,轉(zhuǎn)化為單位為g的數(shù)據(jù)int AccDataHandle(E53SC2Data *dat){    //量程為+-8g,所以分辨率為4096    if (dat->Accel[ACCEL_X_AXIS] <  MAX_POS_NUM) {        myCaldata.Accel[ACCEL_X_AXIS] = dat->Accel[ACCEL_X_AXIS]/LSB;    } else {        myCaldata.Accel[ACCEL_X_AXIS] =(-1)* (dat->Accel[ACCEL_X_AXIS]-MAX_POS_NUM)/LSB;    }    if (dat->Accel[ACCEL_Y_AXIS] <  MAX_POS_NUM) {        myCaldata.Accel[ACCEL_Y_AXIS] = dat->Accel[ACCEL_Y_AXIS]/LSB;    } else {        myCaldata.Accel[ACCEL_Y_AXIS] = (-1)*(dat->Accel[ACCEL_Y_AXIS]-MAX_POS_NUM)/LSB;    }    if (dat->Accel[ACCEL_Z_AXIS] <  MAX_POS_NUM) {        myCaldata.Accel[ACCEL_Z_AXIS] = dat->Accel[ACCEL_Z_AXIS]/LSB;    } else {        myCaldata.Accel[ACCEL_Z_AXIS] =(-1)*(dat->Accel[ACCEL_Z_AXIS]-                   MAX_POS_NUM)/LSB;    }return 0;}

2、TCP通信線程主要函數(shù)說(shuō)明:

在本樣例的網(wǎng)絡(luò)通信中,小熊派BearPi-HM Nano(Hi3861)開(kāi)發(fā)板作為客戶端,潤(rùn)和DAYU200(RK3568)開(kāi)發(fā)板作為服務(wù)端。它們之間采用TCP機(jī)制通信。

如下代碼:建立好TCP通信后,常規(guī)狀態(tài)下通信線程處在阻塞態(tài),當(dāng)拳擊事件觸發(fā)后,則會(huì)發(fā)送信息給服務(wù)端:


static void TCPClientTask(void){    // 在sock_fd 進(jìn)行監(jiān)聽(tīng),在 new_fd 接收新的鏈接    int sock_fd;    uint32_t flags;    struct sockaddr_in send_addr;   // 服務(wù)器的地址信息    socklen_t addr_length = sizeof(send_addr);    char recvBuf[recvLen];    memset(recvBuf, '', sizeof(recvBuf));    // 連接Wifi    WifiConnect(CONFIG_WIFI_SSID, CONFIG_WIFI_PWD);     // 創(chuàng)建socket    if ((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {        perror("create socket failed!
");        exit(1);    }    // 初始化預(yù)連接的服務(wù)端地址    send_addr.sin_family = AF_INET;    send_addr.sin_port = htons(CONFIG_SERVER_PORT);    send_addr.sin_addr.s_addr = inet_addr(CONFIG_SERVER_IP);    addr_length = sizeof(send_addr);    //連接    connect(sock_fd,(struct sockaddr *)&send_addr, addr_length);    printf("TCPClient connect success
");
    while (1) {        memset(recvBuf, '', sizeof(recvBuf));  //等待事件是否觸發(fā)        flags = osEventFlagsWait(g_eventFlagsId, FLAGS_MSK1, osFlagsWaitAny, osWaitForever);        printf("TCP get flag
");        sprintf(sendbuf,"right
");        send(sock_fd, sendbuf, strlen(sendbuf), 0);//tcp發(fā)出觸發(fā)信息        // 線程休眠一段時(shí)間        usleep(Delay_100ms);//100ms    }    closesocket(sock_fd);}

五、代碼構(gòu)建、編譯及燒錄

1、OpenHarmony 3.2 Beta1源碼下載,地址參考文章結(jié)尾處鏈接; 2、在源碼根目錄下的vendor目錄下,新建team_x文件夾;

3、把boxing文件夾,拷貝到team_x目錄下,如下圖所示:

de84b8a0-1a85-11ed-ba43-dac502259ad0.png

3、在源碼目錄下,輸入hb set,然后選擇當(dāng)前文件路徑,即輸入.(點(diǎn)),然后通過(guò)方向鍵選取team_x下的boxing,如下圖:

dea629f4-1a85-11ed-ba43-dac502259ad0.png

4、輸入hb build -f,開(kāi)始編譯,編譯成功后,會(huì)在根目錄下的out/bearpi_hm_nano/boxing目錄生成Hi3861_wifiiot_app_allinone.bin,如下圖:

deb95038-1a85-11ed-ba43-dac502259ad0.png

decbfc74-1a85-11ed-ba43-dac502259ad0.png

5、用HiBurn工具燒錄程序,燒錄參考鏈接在文章結(jié)尾處;

燒錄成功后,可以本地驗(yàn)證項(xiàng)目是否成功:

1、電腦端使用網(wǎng)絡(luò)調(diào)試助手軟件,建立TCP服務(wù)端,電腦端建立服務(wù)端需要注意以下幾點(diǎn);

(1)電腦與BearPi-HM Nano開(kāi)發(fā)板連入同一個(gè)Wi-Fi熱點(diǎn),如圖:電腦與開(kāi)發(fā)板都連入熱點(diǎn)"YYYYYY";

(2)BearPi-HM Nano開(kāi)發(fā)板程序設(shè)置的IP,電腦的IP,網(wǎng)絡(luò)調(diào)試助手服務(wù)端的IP,三者保持一致,如下圖"192.168.1.100";

(3)點(diǎn)擊網(wǎng)絡(luò)調(diào)試助手的"連接"按鈕,即先啟動(dòng)服務(wù)端。

dedc79aa-1a85-11ed-ba43-dac502259ad0.png

2、BearPi-HM Nano開(kāi)發(fā)板串口接入電腦,設(shè)置波特率為115200;

3、復(fù)位BearPi-HM Nano開(kāi)發(fā)板,復(fù)位后,串口會(huì)打印Wi-Fi連接成功、TCP連接成功等信息,如下圖(右側(cè));

4、手握開(kāi)發(fā)板,嘗試出拳(即揮動(dòng)開(kāi)發(fā)板)。能看到網(wǎng)絡(luò)助手的TCP服務(wù)端窗口,成功接收到同步揮拳信息“right”,如下圖(左側(cè)):

defd95e0-1a85-11ed-ba43-dac502259ad0.png

六、總結(jié)

本文主要講述了拳擊互動(dòng)游戲中,關(guān)于設(shè)備端的開(kāi)發(fā),使用小熊派BearPi-HM Nano(Hi3861)開(kāi)發(fā)板硬件,在小熊派相關(guān)基礎(chǔ)例程上做了二次開(kāi)發(fā)。本設(shè)備端開(kāi)發(fā),使用了OpenHarmony的線程、事件、GPIO、IIC、TCP通信等相關(guān)基礎(chǔ)知識(shí),再結(jié)合加速度計(jì)傳感器的使用,實(shí)現(xiàn)與應(yīng)用端同步交互的功能。

本樣例是OpenHarmony知識(shí)體系工作組(相關(guān)鏈接在文章末尾)為廣大開(kāi)發(fā)者分享的樣例。知識(shí)體系工作組結(jié)合日常生活,給開(kāi)發(fā)者規(guī)劃了各種場(chǎng)景的Demo樣例,如智能家居場(chǎng)景、影音娛樂(lè)場(chǎng)景、運(yùn)動(dòng)健康場(chǎng)景等;歡迎廣大開(kāi)發(fā)者一同參與OpenHarmony的開(kāi)發(fā),更加完善樣例,相互學(xué)習(xí),相互進(jìn)步。

七、參考連接

本樣例代碼下載鏈接:

https://gitee.com/openharmony-sig/knowledge_demo_entainment/tree/master/dev/team_x/boxing

OpenHarmony知識(shí)體系共建開(kāi)發(fā)倉(cāng):

https://gitee.com/openharmony-sig/knowledge/blob/master/docs/co-construct_demos/README_zh.md

OpenHarmony學(xué)習(xí)路徑:

https://growing.openharmony.cn/mainPlay/learnPath

小熊派BearPi-HM Nano開(kāi)發(fā)板學(xué)習(xí)路徑:

https://growing.openharmony.cn/mainPlay/learnPathMaps?id=19

https://gitee.com/bearpi/bearpi-hm_nano/tree/master

潤(rùn)和DAYU200(RK3568)開(kāi)發(fā)板介紹:

https://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/docs/README.md

https://growing.openharmony.cn/mainPlay/learnPathMaps?id=27

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2552

    文章

    51305

    瀏覽量

    755267
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5359

    瀏覽量

    120818
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3731

    瀏覽量

    16439

原文標(biāo)題:OpenHarmony有氧拳擊之設(shè)備端開(kāi)發(fā)

文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于ArkTS語(yǔ)言的OpenHarmony APP應(yīng)用開(kāi)發(fā):HelloOpenharmony

    1、程序簡(jiǎn)介該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫的UI應(yīng)用類:HelloOpenHarmony。本案例是基于API9接口開(kāi)發(fā)。本案例已在OpenHarmony凌蒙派-RK35
    的頭像 發(fā)表于 09-15 08:09 ?445次閱讀
    基于ArkTS語(yǔ)言的<b class='flag-5'>OpenHarmony</b> APP應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>:Hello<b class='flag-5'>Openharmony</b>

    OpenHarmony 明星開(kāi)發(fā)板和應(yīng)用招募啟動(dòng),等你來(lái)!

    板能夠量產(chǎn)>1000pcs 報(bào)名企業(yè)至少有1款開(kāi)發(fā)板或者商用設(shè)備通過(guò)OpenHarmony兼容性測(cè)試 報(bào)名企業(yè)可持續(xù)投入南向設(shè)備開(kāi)發(fā)
    發(fā)表于 09-14 15:21

    第二屆大會(huì)回顧第25期 | OpenHarmony上的Python設(shè)備應(yīng)用開(kāi)發(fā)

    Python以其簡(jiǎn)單、易學(xué)和功能強(qiáng)大而聞名,有著廣泛的用戶群體。采用Python開(kāi)發(fā)有助于降低OpenHarmony的學(xué)習(xí)門檻。如何在OpenHarmony上用Python開(kāi)發(fā)
    的頭像 發(fā)表于 08-27 11:53 ?752次閱讀
    第二屆大會(huì)回顧第25期 | <b class='flag-5'>OpenHarmony</b>上的Python<b class='flag-5'>設(shè)備</b>應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>

    OpenHarmony開(kāi)機(jī)優(yōu)化

    、磁盤I/O等,并以圖表形式展示出來(lái)。 使用方法 參考文檔:OpenHarmony性能調(diào)優(yōu)工具—boochart_小~Q-Laval社區(qū) 通過(guò)Bootchart工具,開(kāi)發(fā)者可以深入了解系統(tǒng)的啟動(dòng)過(guò)程,并
    發(fā)表于 07-01 16:39

    OpenHarmony開(kāi)發(fā)實(shí)例:【配置應(yīng)用簽名信息】

    使用真機(jī)設(shè)備運(yùn)行和調(diào)試OpenHarmony應(yīng)用前,需要對(duì)應(yīng)用進(jìn)行簽名才能正常運(yùn)行。
    的頭像 發(fā)表于 04-22 16:52 ?511次閱讀
    <b class='flag-5'>OpenHarmony</b><b class='flag-5'>開(kāi)發(fā)</b>實(shí)例:【配置應(yīng)用簽名信息】

    鴻蒙開(kāi)發(fā)實(shí)例:【配置OpenHarmony SDK】

    在設(shè)置OpenHarmony應(yīng)用開(kāi)發(fā)環(huán)境時(shí),需要開(kāi)發(fā)者在DevEco Studio中配置對(duì)應(yīng)的SDK信息。
    的頭像 發(fā)表于 04-22 15:24 ?2089次閱讀
    鴻蒙<b class='flag-5'>開(kāi)發(fā)</b>實(shí)例:【配置<b class='flag-5'>OpenHarmony</b> SDK】

    OpenHarmony南向開(kāi)發(fā)案例:【智能油煙機(jī)】

    基于Hi3516開(kāi)發(fā)板,使用開(kāi)源OpenHarmony開(kāi)發(fā)的應(yīng)用。
    的頭像 發(fā)表于 04-18 15:54 ?1092次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開(kāi)發(fā)</b>案例:【智能油煙機(jī)】

    九聯(lián)開(kāi)鴻加入開(kāi)放原子開(kāi)源基金會(huì)OpenHarmony醫(yī)療健康專委會(huì)

    近日,九聯(lián)開(kāi)鴻加入開(kāi)放原子開(kāi)源基金會(huì)OpenHarmony醫(yī)療健康專委會(huì),將與醫(yī)療行業(yè)伙伴合作開(kāi)發(fā)基于OpenHarmony系統(tǒng)的智慧醫(yī)療產(chǎn)品以及智慧病房解決方案,完成包括床頭屏、走廊屏、門禁等
    的頭像 發(fā)表于 04-18 09:46 ?482次閱讀
    九聯(lián)開(kāi)鴻加入開(kāi)放原子開(kāi)源基金會(huì)<b class='flag-5'>OpenHarmony</b>醫(yī)療健康專委會(huì)

    OpenHarmony南向開(kāi)發(fā)案例:【智能中控屏】

    基于Hi3516開(kāi)發(fā)板,使用開(kāi)源OpenHarmony開(kāi)發(fā)的應(yīng)用。通過(guò)控制面板可以控制同一局域網(wǎng)內(nèi)的空調(diào),窗簾,燈等智能家居設(shè)備。
    的頭像 發(fā)表于 04-17 16:12 ?405次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開(kāi)發(fā)</b>案例:【智能中控屏】

    OpenHarmony南向開(kāi)發(fā)案例:【分布式畫板】

    使用OpenHarmony3.1-Release開(kāi)發(fā)的應(yīng)用。通過(guò)OpenHarmony的分布式技術(shù),使多人能夠一起畫畫。
    的頭像 發(fā)表于 04-12 14:40 ?1068次閱讀
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>開(kāi)發(fā)</b>案例:【分布式畫板】

    鴻蒙OpenHarmony技術(shù):【設(shè)備互信認(rèn)證】

    OpenHarmony中,設(shè)備互信認(rèn)證模塊作為安全子系統(tǒng)的子模塊,負(fù)責(zé)設(shè)備間可信關(guān)系的建立、維護(hù)、使用、撤銷等全生命周期的管理,實(shí)現(xiàn)可信設(shè)備間的互信認(rèn)證和安全會(huì)話密鑰協(xié)商,是搭載
    的頭像 發(fā)表于 03-25 17:04 ?801次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>技術(shù):【<b class='flag-5'>設(shè)備</b>互信認(rèn)證】

    【六】Purple Pi OH開(kāi)發(fā)板帶你7天入門OpenHarmony!

    今天我們來(lái)從OpenHarmony簡(jiǎn)介、環(huán)境搭建、創(chuàng)建第一個(gè)OpenHarmony項(xiàng)目等方面開(kāi)始OpenHarmony應(yīng)用開(kāi)發(fā)的第一步。一.Open
    的頭像 發(fā)表于 03-14 08:31 ?572次閱讀
    【六】Purple Pi OH<b class='flag-5'>開(kāi)發(fā)</b>板帶你7天入門<b class='flag-5'>OpenHarmony</b>!

    OpenHarmony NAPI 框架介紹

    環(huán)境中的 JS 變量與方法。 OpenHarmony 中的 NAPI OpenAtom OpenHarmony(以下簡(jiǎn)稱 “OpenHarmony”)應(yīng)用層基于 javascript 語(yǔ)言開(kāi)發(fā)
    的頭像 發(fā)表于 02-01 17:34 ?735次閱讀
    <b class='flag-5'>OpenHarmony</b> <b class='flag-5'>之</b> NAPI 框架介紹

    鴻蒙next開(kāi)發(fā)-OpenHarmony的NDK開(kāi)發(fā)

    Native API是OpenHarmony SDK上提供的一組native開(kāi)發(fā)接口與工具集合(也稱為NDK),方便開(kāi)發(fā)者使用C或者C++語(yǔ)言實(shí)現(xiàn)應(yīng)用的關(guān)鍵功能。
    的頭像 發(fā)表于 01-20 11:35 ?1844次閱讀
    鴻蒙next<b class='flag-5'>開(kāi)發(fā)</b>-<b class='flag-5'>OpenHarmony</b>的NDK<b class='flag-5'>開(kāi)發(fā)</b>

    潤(rùn)開(kāi)鴻基于OpenHarmony的全場(chǎng)景應(yīng)用開(kāi)發(fā)實(shí)訓(xùn)平臺(tái)通過(guò)兼容性測(cè)評(píng)

    基于OpenHarmony的應(yīng)用開(kāi)發(fā)課程教學(xué)提供了兼具易用性與教學(xué)便利性的一站式設(shè)備教具,也為進(jìn)一步豐富基于OpenHarmony3.2.Release版本系統(tǒng)新特性的應(yīng)用樣例產(chǎn)出打
    的頭像 發(fā)表于 01-20 08:02 ?597次閱讀
    潤(rùn)開(kāi)鴻基于<b class='flag-5'>OpenHarmony</b>的全場(chǎng)景應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>實(shí)訓(xùn)平臺(tái)通過(guò)兼容性測(cè)評(píng)