一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【軟通動力鴻湖萬聯揚帆系列“競”開發(fā)板試用體驗】試用測評報告五 –開源鴻蒙C/C++軟件開發(fā)

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-13 10:36 ? 次閱讀

本文來源電子發(fā)燒友社區(qū),作者:ALSET, 帖子地址:https://bbs.elecfans.com/jishu_2307110_1_1.html



開源鴻蒙C_C++應用開發(fā)(體驗視頻詳見原帖子)


鴻湖萬聯揚帆系列“競”開發(fā)板試用測評報告五 –開源鴻蒙C/C++軟件開發(fā)
大信(QQ:8125036)
在成功的建立了開源鴻蒙的集成開發(fā)環(huán)境以后,已經了解了鴻蒙一般的應用開發(fā)的流程和開發(fā)工具軟件。基本上開發(fā)所需要的所有操作都在它的集成開發(fā)環(huán)境中完成,即在DevEco Studio 中完成,而DevEco Studio 集成開發(fā)環(huán)境功能強大,集代碼的編輯,編譯,軟件資源的管理,預處理以及,UI設計預覽等于一體,還集合了SDK,模擬器以及設備管理,下載器等功能。
這個集成開發(fā)環(huán)境從安裝過程可以看到它直接支持js和c/c++兩種語言來開發(fā)鴻蒙應用,支持ejs和html方式來設計UI,這個對一般信息類的服務應用用來說已經完全滿足各種行業(yè)的應用需求。比如開發(fā)個商城、點餐、買菜啥的大眾服務類APP,哈哈。并且開發(fā)簡單,門檻低,預計以后在支持鴻蒙設備普及后,這類應用將極大的豐富。
但對于一個稍微有上進心的硬核開發(fā)者來說,顯然不滿足于用js和html來寫個買菜之類的APP,我們有必要更深入的了解系統(tǒng)的原理以及程序運行框架,以及系統(tǒng)相關接口,以便能夠基于系統(tǒng)層開發(fā)一些擴展模塊,以及支持更多的外部硬件驅動,或者開發(fā)通訊應用、多媒體應用等系統(tǒng)級開發(fā)作為小目標。
首先閱讀官方提供的開發(fā)文檔《軟通動力揚帆競系列開發(fā)板軟件開發(fā)環(huán)境搭建指導手冊最終版v2.0》。按文檔的說明,前一章已經安裝軟件工具列表,這里就按照之前的操作步驟開始探索系統(tǒng)層面的開發(fā)。這里依然用一下鴻蒙的系統(tǒng)架構圖,因為它是了解整體全貌的基礎。
poYBAGMsKfKAVwGLAANMiOpIEmE890.png
圖1 OpenHarmony 整體技術架構
一、學習開發(fā)資料收集整理
為了更好的研究和學習Openharmony 系統(tǒng),首先做一下資料的收集和調查,基本上搜索了一圈后,找到幾個比較好的網站,這里簡單的給列出一下,也方便同樣學習的童靴們參考:
https://growing.openharmony.cn/mainPlay/learnPath
這個網站是OpenHarmony官網的學習板塊主頁面,可以了解到Openharmony整體的概貌,以及OpenHarmony的相應的領域以及對應的學習路線路圖,這里可以看到 OpenHarmony支持三類設備,輕量系統(tǒng),小型系統(tǒng),標準系統(tǒng)。開發(fā)角色分為系統(tǒng)開發(fā)者和應用開發(fā)者,難度則對應了初中高三個級別。從頁面介紹的系統(tǒng)看,有很多硬件支持Openharmony 了,但里面沒有找到鴻湖萬聯揚帆系列“競”開發(fā)板,但從其主處理器看,應該屬于標準系統(tǒng),因此可以參照 OpenHarmony標準系統(tǒng)應用開發(fā),九聯Unionpitiger開發(fā)板標準系統(tǒng),潤和RK3568開發(fā)板標準系統(tǒng),OpenHarmony硬件開發(fā)環(huán)境搭建DevEco Device Tool,OpenHarmony多媒體子系統(tǒng)介紹,這幾個板塊的內容。這些內容有很多帶有視頻,學習起來很方便。
https://gitee.com/openharmony/docs
這個網址站是OpenHarmony的碼云Gitee代碼倉庫里的文檔庫地址。這里面就是面對開發(fā)者的文檔了,OpenHarmony 所有的主線板本以及分支版本,各個基線版本都在這個倉庫,因此它是開發(fā)者特別是系統(tǒng)開發(fā)者常常光顧的地方,同樣這里的文檔庫不用說了,都是跟開發(fā)密切相關的資料了,所有代碼的變更以及報告的問題,問題的解決過程都在這里面了,文檔量已經非常大了,不過有一個好消息是,所有問題都是中文的,文字閱讀不會有障礙。不好的消息是,對于看慣英文文檔的開發(fā)者來說,這可能得習慣一下,很多技術定義以及術語的使用不夠準確規(guī)范,不過也有英文版本,哈哈。系統(tǒng)層的很多接口調用的說明都在這個文檔庫里了。
這個倉庫里代碼對應就是當前OpenHarmony最新的版本,嘗鮮的小朋友可以隨時拉下來編譯一個運行。而且遇到問題,隨時可以進入源碼層去看發(fā)生了什么,不爽的話,順手可以修改一下。感覺是不是很爽? 那就開發(fā)愉快!
https://toscode.gitee.com/explore/harmony
這個網址就是基于OpenHarmony各種組件,應用,模塊的開源項目地址了,這里面既有很多應用軟件,也有很多基礎的組件,用于擴展標準系統(tǒng)的軟件,比如用戶的HTTP通訊組件,自定義UI控件等,也有其它不同硬件上的鴻蒙開發(fā)資源,以及一些資料的大集合。也有各種移植的技術帖子,五花八門,專解決各種疑難雜癥。去這里面轉轉,很容易找到一些開發(fā)資料,有文字、視頻,也有別人開發(fā)好的模塊代碼,減少重復造車輪的事發(fā)生。
資料比較集中的就在上面幾個地址里,其它的博客文章,這里就不一一列舉了,各個博客文章記錄很多為解決專項問題的方案,當遇到問題時,搜索一下就可以找到。想要快速了解OpenHarmony的技術整體知識,系統(tǒng)的閱讀相關資料是最快的方法。
下面的開發(fā)試驗過程都基于這個主機環(huán)境,開發(fā)環(huán)境配置介紹:
Windwos環(huán)境供開發(fā)者參考:
硬件:CPU Intel(R) Core(TM) i7-4770HQ CPU@ 2.20GHz 2.20 GHz
內存:16G
硬盤:1T
操作系統(tǒng):Win10, Vmware 15 Player
二、系統(tǒng)與集成應用C/C++開發(fā)比較


因為該開發(fā)板沒有提供其系統(tǒng)Openharmony 的源碼資料,因此還不能使用系統(tǒng)的開發(fā)方式進行打包開發(fā)。按Openharmony開源社區(qū)的技術資料,在一些硬件上,可以從其源碼構建整體系統(tǒng)。鴻蒙提供了整個系統(tǒng)的源碼,每個硬件開發(fā)板,只要按鴻蒙系統(tǒng)的BSP接口完成硬件驅動的對接,就可以使得鴻蒙運行到特定的硬件上。
因此對于不同的硬件開發(fā)板,只要了解其硬件系統(tǒng)的設備驅動,進行開發(fā)適配層,即可完成鴻蒙系統(tǒng)在其板上的運行。
同時,在DevEco Studio里也提供了C/C++的開發(fā)模式的支持,可以看出,這種模式是采用的與硬件無關的一種平臺開發(fā)方式,這里的通過鴻蒙對外提供的統(tǒng)一的API接口,屏蔽了各個硬件細節(jié)的差異,從而是開發(fā)者不必關心硬件的差異,而進行系統(tǒng)的開發(fā)。從其原理可以,這種方式是基于鴻蒙的API接口進行開發(fā),處于應用層,因此從系統(tǒng)應用管理來講,它更像Android 的Native 模式的開發(fā),用于提高應用軟件運行效率以及一些音視頻多媒體應用開發(fā)的場合,而為底層增加特定功能模塊,擴展功能等就受到了框架的一定約束。
四、創(chuàng)建集成環(huán)境下的Hello,world C/C++程序
打開DevEco集成開發(fā)軟件,就可以創(chuàng)建c/c++的應用程序,線了解一下在應用層c/c++開發(fā)的模式以及可調傭的SDK。打開DevEco Studio,選擇創(chuàng)建應用,如下圖:
poYBAGMsKfSANPKgAAB0Yhw9j3A666.png
圖2 創(chuàng)建新應用
下一步選擇平臺,同樣選擇 OpenHarmony, 模板選擇Navite C/C++
pYYBAGMsKfWAHP-VAABrji93x88183.png
圖3 選擇C/C++模板
選擇好平臺模板后,就填寫一些應用的參數信息,名稱,項目路徑,語言等,因為應用程序是有界面的,因此這里界面可以選擇ejs或者js, 這里就選擇 ejs 模板了。
poYBAGMsKfWADYUJAADP-_RoSfM907.png
圖4 設置項目信息
在點擊完成時,會出現下面的提示,可以看到是提示下載SDK,看來C/C++和js開發(fā)用的是不同的SDK和工具,按提示開始下載。
pYYBAGMsKfaAWPS-AADpcwyGToo982.png
圖5 提示缺少Native開發(fā)SDK
組件有600M,還好服務器在華為云上,因此下載速度很快,相比Android下載SDK,必須去海外的google上下載,那體驗相比好多了。
poYBAGMsKfeANj3WAACbDCh7dcs610.png
圖6 下載少Native開發(fā)SDK
下載完成就來到了代碼編輯開發(fā)界面,如下圖:
poYBAGMsKfiANZllAAIZCTUxg4w567.png
圖7 C/C++代碼編輯開發(fā)界面
從代碼的一些定義可以看出,這個是Nodejs 的NAPI的規(guī)范調用,所以驗證了,Harmony系統(tǒng)主要運行的是Nodejs的KVM 執(zhí)行機,所有應用都有Nodejs來解釋執(zhí)行。
也可以切換到UI編輯界面可以看到現在Hello,world的UI設計,這里依然是Ejs的界面描述語言,還是很好理解,這里稍微改一下,界面加上對C++的問候, 以及對C/C++接口的調用,把執(zhí)行的結果返回到界面上。
pYYBAGMsKfiAC7MyAALvebXmpmQ512.png
圖8 UI 界面設計編輯開發(fā)
做完開發(fā)后,點擊build里的編譯,很快幾步提示,編譯成功。編譯應用開發(fā)就這么簡單。
poYBAGMsKfmAYT4RAAJ84ebIr_c468.png
圖9 編譯打包hap
同樣編譯完,開發(fā)打包,生成可以下載開發(fā)板的app軟件,同樣在build界面上,和之前的JS 開發(fā)過程一樣,點擊構建安裝包,就開始進行打包工作。
首次打開會彈出一個安全證書請求的要求,原來鴻蒙的應用都需要CA簽名,按提示說明,填入相關的信息,進行證書的制作。這一步看著填的東西很多,其實很簡單,按文檔或者網上的教程照做,簡單幾步就可以過去了。
poYBAGMq4rKASRH2AABpFt7_MXk727.png
圖10 創(chuàng)建簽名證書
pYYBAGMq4rOAIEOTAAAWt8MqTLs600.png
圖11 生成設備請求書
在簡單測試開發(fā),并不需要正式發(fā)布時,也可以使用自動簽名,方式是,點擊:File-> Project Struct-> Project -> Signing Config 勾選自動簽名即可。這里還可以把應用運行的調用安全聲明開關打開,因為高級應用一般設計到系統(tǒng)敏感系統(tǒng)如網絡,存儲,相機,短信等的訪問,而這些都需要授權許可。
pYYBAGMsKg6ANs2IAALYMUT_bNs648.png
圖12 測試應用自動簽名
獲取完證書,就可以打包生成可以下載的APP了,回到開發(fā)界面,在右上角設備列表里,會出現開發(fā)板的ID,如果沒有在下拉列表里會有,選擇上即可以,然后點右側的“運行”,即自動的安裝運行,板上運行效果如下圖:
poYBAGMsKg-ATAuIAA1bTshxC8w271.png
圖13 測試應用板上運行
五、集成應用的C/C++代碼分析
這里的應用程序代碼如下,在UI層,即eTS 界面里,代碼是按eJS規(guī)范編寫,其邏輯語法與js一致,在其界面中引入C/C++的模塊,可見這里c/c++被編譯成一個動態(tài)庫。
importtestNapifrom'libentry.so'
在界面里直接調用動態(tài)庫對外的方法, 動態(tài)庫的實例這里是testNapi , 它的方法就是c/c++里定義的對js調用的接口 add, 調用方式如下:
poYBAGMsKg-AFmV6AABFN_pBfN0279.png
CPP代碼里則定義了一個Napi的模塊以及標準接口,這個接口就是nodejs 與c++ 之間的規(guī)范,也就個接口使得js可以調用我們自己開發(fā)的 c/c++代碼了。這里接口定義了一個add , 在c++里,完成從js里輸入參數,轉換成c/c++的變量類型,同時按成兩個數據的相加,然后再返回js的數據類型,具體c/c++代碼實現的入口函數為:
napi_value function(napi_env env,napi_callback_info info)
這里面就可以加入我們自己實現的邏輯,其中env 是nodejs 的環(huán)境變量,當我們需要跟外部js進行數據交換時,就通過它完成, 為了使用N-API提供的接口及類型定義,我們需要引入node_api.h頭文件。使用N-API定義的方法需要滿足napi_callback類型,其定義為:
typedef napi_value (*napi_callback)(napi_envenv, napi_callback_info info);
napi_callback是使用N-API開發(fā)的Native函數的函數指針類型,其接受類型分別為napi_env以及napi_callback_info的兩個參數,并返回類型為napi_value的值。greeting方法中涉及到的幾個類型定義及其用途如下:

napi_value類型是一個用于表示Javascript值的指針
napi_env 類型用于存儲Javascript虛擬機的上下文
napi_callback_info 類型用于調用回調函數時,傳遞調用時的上下文信息
我們定義的Add方法如下:
pYYBAGMsKhCAZc3oAACBh0bqNMQ896.png

而對js模塊,對外可調用的具體接口代碼如下:
poYBAGMsKhGAfmI_AACNZjRShY4438.png

代碼可見是用到了Node.js Native模塊的規(guī)范,這個規(guī)范叫 N-API。N-API為開發(fā)者提供了一套C/C++ API用于開發(fā)Node.js的Native擴展模塊。從Node.js 8.0.0開始,N-API作為Node.js本身的一部分被引入,并且從Node.js 10.0.0開始正式全面支持N-API。更多關于NAPI的資料,可以查閱N-api的文檔即可。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 開源
    +關注

    關注

    3

    文章

    3533

    瀏覽量

    43292
  • C++
    C++
    +關注

    關注

    22

    文章

    2116

    瀏覽量

    74568
  • 軟通動力
    +關注

    關注

    1

    文章

    928

    瀏覽量

    15442
  • 鴻湖萬聯
    +關注

    關注

    1

    文章

    82

    瀏覽量

    771
收藏 人收藏

    評論

    相關推薦

    動力攜手亮相2025武漢鴻蒙產業(yè)發(fā)展交流會

    近日,以“鴻蒙生態(tài) 共筑未來”為主題的2025武漢鴻蒙產業(yè)發(fā)展交流會在武漢圓滿舉行。本次活動聚焦產業(yè)政策發(fā)布及鴻蒙生態(tài)與區(qū)域產業(yè)的深度融合,吸引了政產學研用等多方力量參會。作為鴻蒙生態(tài)
    的頭像 發(fā)表于 03-20 15:51 ?284次閱讀

    動力蒞臨開放原子開源基金會參觀交流

    為進一步增進互信,深化開源生態(tài)協(xié)同建設,2月11日,動力董事、
    的頭像 發(fā)表于 02-13 17:29 ?619次閱讀

    微展世與攜手發(fā)布WeOS開源鴻蒙工業(yè)操作系統(tǒng)

    近日,微展世(北京)數字科技有限公司(簡稱“微展世”)在北京隆重舉辦了2025年度的產品發(fā)布與戰(zhàn)略簽約盛會。此次盛會中,微展世的重要戰(zhàn)略合作伙伴——動力及其子公司
    的頭像 發(fā)表于 01-23 15:48 ?578次閱讀

    動力與微展世簽署戰(zhàn)略合作協(xié)議,以開源鴻蒙賦能工業(yè)創(chuàng)新升級

    1月7日,動力攜子公司,與微展世(北京)數字科技有限公司(簡稱“微展世”)在廣州簽署
    的頭像 發(fā)表于 01-21 16:30 ?382次閱讀
    <b class='flag-5'>軟</b>通<b class='flag-5'>動力</b>攜<b class='flag-5'>鴻</b><b class='flag-5'>湖</b><b class='flag-5'>萬</b><b class='flag-5'>聯</b>與微展世簽署戰(zhàn)略合作協(xié)議,以<b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>賦能工業(yè)創(chuàng)新升級

    ?動力子公司攜手南方科技大學 共筑開源鴻蒙人才培養(yǎng)新高地

    1月4日,動力子公司與南方科技大學攜手,開展了一
    的頭像 發(fā)表于 01-20 17:02 ?559次閱讀
    ?<b class='flag-5'>軟</b>通<b class='flag-5'>動力</b>子公司<b class='flag-5'>鴻</b><b class='flag-5'>湖</b><b class='flag-5'>萬</b><b class='flag-5'>聯</b>攜手南方科技大學 共筑<b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>人才培養(yǎng)新高地

    動力攜手微展世發(fā)布WeOS開源鴻蒙工業(yè)操作系統(tǒng)

    近日,微展世(北京)數字科技有限公司(簡稱“微展世”)在北京成功舉辦了2025產品發(fā)布與戰(zhàn)略簽約盛典。作為微展世的重要戰(zhàn)略合作伙伴,動力及其子公司
    的頭像 發(fā)表于 01-20 10:25 ?334次閱讀

    榮膺多項殊榮!動力攜子公司亮相2024開放原子開發(fā)者大會

    壯大我國開源生態(tài)。作為開源生態(tài)的杰出貢獻者和深度參與者,動力攜子公司
    的頭像 發(fā)表于 01-20 09:42 ?413次閱讀
    榮膺多項殊榮!<b class='flag-5'>軟</b>通<b class='flag-5'>動力</b>攜子公司<b class='flag-5'>鴻</b><b class='flag-5'>湖</b><b class='flag-5'>萬</b><b class='flag-5'>聯</b>亮相2024開放原子<b class='flag-5'>開發(fā)</b>者大會

    動力與微展世簽署戰(zhàn)略合作協(xié)議

    近日,動力攜子公司,與微展世(北京)數字科技有限公司(簡稱“微展世”)在廣州簽署戰(zhàn)略
    的頭像 發(fā)表于 01-10 10:16 ?379次閱讀

    攜手南方科技大學推動開源鴻蒙生態(tài)發(fā)展

    近日,動力子公司與南方科技大學攜手,開展了一系列
    的頭像 發(fā)表于 01-06 14:01 ?450次閱讀

    動力攜子公司、通教育助陣首屆鴻蒙生態(tài)大會成功舉辦

    11月23日·中國深圳,首屆鴻蒙生態(tài)大會上,動力動力子公司
    的頭像 發(fā)表于 11-29 10:25 ?443次閱讀
    <b class='flag-5'>軟</b>通<b class='flag-5'>動力</b>攜子公司<b class='flag-5'>鴻</b><b class='flag-5'>湖</b><b class='flag-5'>萬</b><b class='flag-5'>聯</b>、<b class='flag-5'>軟</b>通教育助陣首屆<b class='flag-5'>鴻蒙</b>生態(tài)大會成功舉辦

    動力子公司助陣鴻蒙1024程序員節(jié)成功舉辦

    10月24日,在武漢、成都、深圳等地政府指導下,鴻蒙生態(tài)服務公司舉辦了一場面向廣大開發(fā)者的盛會——鴻蒙1024程序員節(jié)暨鴻蒙原生應用交流會。
    的頭像 發(fā)表于 10-29 15:49 ?645次閱讀
    <b class='flag-5'>軟</b>通<b class='flag-5'>動力</b>子公司<b class='flag-5'>鴻</b><b class='flag-5'>湖</b><b class='flag-5'>萬</b><b class='flag-5'>聯</b>助陣<b class='flag-5'>鴻蒙</b>1024程序員節(jié)成功舉辦

    動力子公司發(fā)布SwanLinkOS 5

    在近日圓滿閉幕的首屆H?I3 AI探索峰會上,動力憑借其深厚的技術實力與創(chuàng)新精神,在鴻蒙生態(tài)領域再次邁出堅實步伐。會上,動力攜手子公
    的頭像 發(fā)表于 09-04 16:50 ?1088次閱讀

    動力子公司重磅發(fā)布SwanLinkOS 5,擘畫開源鴻蒙AI PC新篇章

    在剛剛落下帷幕的首屆H?I3AI探索峰會上,動力再次于鴻蒙生態(tài)領域實現突破。此次活動中,動力高級副總裁、
    的頭像 發(fā)表于 09-03 11:37 ?736次閱讀
    <b class='flag-5'>軟</b>通<b class='flag-5'>動力</b>子公司<b class='flag-5'>鴻</b><b class='flag-5'>湖</b><b class='flag-5'>萬</b><b class='flag-5'>聯</b>重磅發(fā)布SwanLinkOS 5,擘畫<b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>AI PC新篇章

    動力子公司參與揭幕中部首個鴻蒙生態(tài)創(chuàng)新中心

    一體的高水平公共服務平臺。動力子公司憑借在鴻蒙
    的頭像 發(fā)表于 07-19 13:51 ?444次閱讀
    <b class='flag-5'>軟</b>通<b class='flag-5'>動力</b>子公司<b class='flag-5'>鴻</b><b class='flag-5'>湖</b><b class='flag-5'>萬</b><b class='flag-5'>聯</b>參與揭幕中部首個<b class='flag-5'>鴻蒙</b>生態(tài)創(chuàng)新中心

    動力子公司攜多款重磅創(chuàng)新產品亮相華為開發(fā)者大會

    如何引領行業(yè)進步,共同探索鴻蒙生態(tài)與AI大模型的發(fā)展新契機。作為本次大會鉆石級合作伙伴,動力攜子公司
    的頭像 發(fā)表于 06-25 11:38 ?538次閱讀
    <b class='flag-5'>軟</b>通<b class='flag-5'>動力</b>子公司<b class='flag-5'>鴻</b><b class='flag-5'>湖</b><b class='flag-5'>萬</b><b class='flag-5'>聯</b>攜多款重磅創(chuàng)新產品亮相華為<b class='flag-5'>開發(fā)</b>者大會