在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

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

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



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


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


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

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

    關注

    3

    文章

    3594

    瀏覽量

    43475
  • C++
    C++
    +關注

    關注

    22

    文章

    2117

    瀏覽量

    74779
  • 軟通動力
    +關注

    關注

    1

    文章

    963

    瀏覽量

    15512
  • 鴻湖萬聯
    +關注

    關注

    1

    文章

    82

    瀏覽量

    790
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    亮相2025開源鴻蒙開發者大會

    近日,開源鴻蒙開發者大會2025在深圳隆重開幕。本次大會由開源鴻蒙項目群工作委員會主辦,華為、潤開
    的頭像 發表于 05-28 16:09 ?315次閱讀

    【評測試用】合眾HZ-T536開發板免費試用體驗

    【評測試用】合眾HZ-T536開發板免費試用體驗
    的頭像 發表于 05-27 08:05 ?75次閱讀
    【評測<b class='flag-5'>試用</b>】合眾HZ-T536<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>體驗

    開源鴻蒙開發新體驗,開Bot系列今日開啟預售!

    系列無疑是一站式的學習與開發解決方案。它支持開發者進行KaihongOS桌面版操作系統的學習與開發開源
    發表于 05-16 14:13

    動力攜手亮相2025武漢鴻蒙產業發展交流會

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

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

    為進一步增進互信,深化開源生態協同建設,2月11日,動力董事、
    的頭像 發表于 02-13 17:29 ?682次閱讀

    微展世與攜手發布WeOS開源鴻蒙工業操作系統

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

    動力與微展世簽署戰略合作協議,以開源鴻蒙賦能工業創新升級

    1月7日,動力攜子公司,與微展世(北京)數字科技有限公司(簡稱“微展世”)在廣州簽署
    的頭像 發表于 01-21 16:30 ?428次閱讀
    <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>賦能工業創新升級

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

    1月4日,動力子公司與南方科技大學攜手,開展了一
    的頭像 發表于 01-20 17:02 ?641次閱讀
    ?<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>人才培養新高地

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

    壯大我國開源生態。作為開源生態的杰出貢獻者和深度參與者,動力攜子公司
    的頭像 發表于 01-20 09:42 ?567次閱讀
    榮膺多項殊榮!<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'>開發</b>者大會

    動力與微展世簽署戰略合作協議

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

    攜手南方科技大學推動開源鴻蒙生態發展

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

    動力攜子公司通教育助陣首屆鴻蒙生態大會成功舉辦

    11月23日·中國深圳,首屆鴻蒙生態大會上,動力動力子公司
    的頭像 發表于 11-29 10:25 ?489次閱讀
    <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>生態大會成功舉辦

    動力子公司發布SwanLinkOS 5

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

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

    在剛剛落下帷幕的首屆H?I3AI探索峰會上,動力再次于鴻蒙生態領域實現突破。此次活動中,動力高級副總裁、
    的頭像 發表于 09-03 11:37 ?803次閱讀
    <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>重磅發布SwanLinkOS 5,擘畫<b class='flag-5'>開源</b><b class='flag-5'>鴻蒙</b>AI PC新篇章

    動力子公司攜多款重磅創新產品亮相華為開發者大會

    如何引領行業進步,共同探索鴻蒙生態與AI大模型的發展新契機。作為本次大會鉆石級合作伙伴,動力攜子公司
    的頭像 發表于 06-25 11:38 ?607次閱讀
    <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>者大會
    主站蜘蛛池模板: 搜索黄色录像 | 一级毛片aaaaaa视频免费看 | 日日噜噜夜夜狠狠久久丁香 | 亚洲精品一区二区中文 | 亚洲一区二区免费看 | 国产福利网站 | 九九免费久久这里有精品23 | 91青草视频| 午夜精品久久久久久久第一页 | 欧美一卡2卡三卡4卡5卡免费观看 | 国产va免费精品高清在线 | 黄色特级毛片 | 婷婷六月久久综合丁香一二 | 国产精品福利午夜h视频 | 国产综合图片 | 最好看的2019中文字幕1 | 欧美成人天天综合在线视色 | 一个色在线视频 | 1024国产高清精品推荐 | 国产精品久久国产三级国不卡顿 | 图片区网友自拍另类图区 | 国产三级观看久久 | 国产69精品久久久久9999 | 三级毛片免费观看 | 毛片网站网址 | 欧美卡一卡二卡新区网站 | 最近2018中文字幕免费视频 | 一级黄视频 | 中文字幕佐山爱一区二区免费 | www激情com | 三级理论在线播放大全 | 天天摸天天摸天天躁 | 在线观看视频网站 | 久久综合狠狠综合久久综合88 | 分分操免费视频在线观看 | 欧美一级日韩一级亚洲一级 | 寡妇一级a毛片免费播放 | 国产一区二区三区影院 | 黄色网址 在线播放 | www视频在线观看com | 亚洲资源在线播放 |