《HarmonyOS網絡編程》直播答疑

想了解更多內容,請訪問:linux

51CTO和華爲官方戰略合做共建的鴻蒙技術社區程序員

https://harmonyos.51cto.com/#bkwz
編程


1. 許老師,3861在STA模式下如何獲取本機的IP地址,能夠修改hostname嗎,就是在路由器上顯示的名稱?
答:能夠用Hi3861 SDK提供的netifapi_netif_get_addr接口,獲取本機的IP地址;windows

能夠用Hi3861 SDK提供的netifapi_set_hostname接口,設置主機名稱(路由器配置界面上能夠查看到);api

 

2. 今天上課所講的是屬於南向的通訊,經過以前的公開課我大概理解了北向開發之間的實時互聯,南北之間實現實時互聯的一個邏輯是什麼?
答:目前來講,南北向之間的互聯,有兩種實現方式:安全

1. 使用鴻蒙的「分佈式軟總線」,優勢是軟總線自己已經實現了設備發現、傳輸層安全等特性,能夠比較方便的實現安全、可靠的互聯;限制是,對端設備也必須是鴻蒙系統;網絡

2. 使用傳統的網絡協議,例如TCP/UDP/MQTT等;優勢是,對端設備只要支持TCP/IP協議便可,能夠是任意OS;缺點是,須要開發者本身實現設備發現、鏈接管理、傳輸層安全等特性,開發難度和工做量較大;app

 

3. 請問鴻蒙系統支持以太網,WIFI多網絡共存,是否支持優先級控制?請問支持最新的wifi6嗎?
答:LwIP支持多網口,鴻蒙網絡協議棧用的是LwIP,是支持WiFi以太網共存的,好比3516開發板。目前不支持wifi6。框架

 

4. 請問老師剛開始講課時提到,鴻蒙的API跟海思的API都提供了 wifi不一樣模式,那麼在代碼裏面的體現方式有什麼不同嗎?
答:最直觀的區別是命名風格,鴻蒙API命名是大駝峯,海思API是下劃線。異步

 

5. Harmony OS所帶的TCP/IP協議棧和LwIP的比較?
答:鴻蒙帶的就是LwIP,只不過有一些修改;海思Hi3861下的lwip添加了一些新的接口例如DHCP服務端等;

liteos-a上的lwip是socket接口的內核實現,對上接口是glibc風格的,和其餘Unix系統基本一致。

 

6. 怎樣在hi3516用js寫app,調用硬件的能力?像上網,攝像頭,喇叭?
答:目前開源的openharmony,js引擎使用的JerryScript,使用硬件能力須要:

1. 藉助JerryScript的C擴展,實現JS調用C代碼(具體能夠參考JerryScript項目的C擴展文檔:https://jerryscript.net/ext-reference-module/,其中最重要的是jerry_create_external_function這個接口);

2. hi3516上面的話,ace框架對JerryScript的C擴展作了一層封裝,在ace框架的封裝之上實現擴展,相比直接使用JerryScript的C擴展要容易一些;

3. 在C擴展接口的實現中,用C語言實現硬件的訪問和控制;

 

7. 請問許老師,若是鴻蒙3861控制機器人,是否是先編寫STA連接WIFI,在寫UDP綁定端口得代碼,而後發送指令?
答:是這樣的思路,具體實施過程可能須要查閱機器人相關的SDK文檔。

 

8. 請問3861和智能音箱該怎麼結合呢?例如天貓精靈,打開臥室燈光?
答:天貓精靈有SDK,具體信息能夠在他們的SDK頁面上了解。

 

9. 這個bsd socket跟通常PC上的socket編程有什麼不同的地方麼?
答:同樣的,Socket API最先來源於BSD Unix發行版,因此也叫BSD Socket。

 

10. 請問老師,鴻蒙中主要是異步編程嘛?和go的異步模型有什麼區別?
答:鴻蒙支持異步編程,但不是主要的方式;少部分API接口是異步的,大部分是同步的。go的異步是由協程(goroutine)和管道(channel)實現的CSP(Communicating Sequential Processes)模型;鴻蒙目前尚未支持協程,可是支持進程和線程(liteos-a上二者都支持,liteos-m上只支持線程)。

 

11. 能夠應用到物聯網麼?好比農業/畜牧業?
答:能夠的

 

12. 支持鴻蒙系統4G/5G的開發板型號是什麼?
答:目前還有沒有支持4G/5G的鴻蒙系統開發板。

 

13. 鴻蒙的liteos-a內核成熟後會不會再也不使用linux內核?
答:應該不會,liteos-a和linux內核目標設備的資源等級不一樣,linux用來支持系統資源更豐富的芯片平臺,將來一段時間應該是會並行演進的。

 

14. 鴻蒙跟liteos有什麼區別?
答:鴻蒙是完整的OS,liteos只是內核,二者關係相似於Linux發行版(如Debian、Ubuntu)和Linux內核的關係。

 

15. 鴻蒙OS的開源程度?開源到什麼程度,是100%開源嗎?
答:9月10號的開發者大會上有開源路線圖(能夠在網上搜到回放),目前不是100%開源,下一步會開源的是鴻蒙的Linux內核。

 

16. Harmony的優先級範圍,如何處理優先級反轉問題?
答:目前liteos-m和liteos-a的優先級有32個,最高是0,最低是31;「優先級反轉問題」LiteOS裏面有優先級繼承來規避這個問題,可是應用程序使用信號量之類時仍是須要細緻和當心。

 

17. 請問老師註冊的任務是如何執行的?
答:啓動過程當中執行的,具體源碼解析能夠取社區裏面看連志安老師以前發過一篇帖子。

 

18. 必須用windows開發麼?能夠用linux開發麼?
答:不是必須的,能夠用Linux開發,可是目前燒錄工具都是Windows版的,在Linux上須要使用Wine運行燒錄工具。

 

19. HarmonyOS使用什麼開發環境?
答:南向開發用的是VSCode + DevEco Device Tool,北向用的是DevEco Studio;

 

20. 鴻蒙OS可以實現跨端應用嗎?
答:能夠實現。

 

21. 鴻蒙OS開發應用可以支持熱加載嗎?
答:目前開源的代碼裏面還不支持熱加載。

 

22. 鴻蒙OS開發應用有沒有大小限制?
答:有必定限制,主要受限於內核和設備自己的內存閃存等硬件資源,例如目前Hi3516開發板有1G RAM,內核的DDRMEMSIZE 定義的是 512M;Hi3518芯片集成64M RAM,Hi3861芯片集成352 KB SRAM。

 

23. 鴻蒙OS適合於開發離線應用嗎?
答:能夠開發離線應用,但鴻蒙支持分佈式特性(分佈式軟總線,分佈式調度等),更適合於開發多端協同的應用。

 

24. HarmonyOS這用的是什麼開發語言,要如何玩起來,能夠用來解決生活中什麼問題?
答:南向開發用的是C/C++,北向開發用的是Java/JavaScript,能夠用在智能家居之類的應用場景中。

 

25. 編譯文件gn和Makefile相比有什麼特別之處?
gn是兩階段的構建,先gn將.gn文件轉爲.ninja描述的依賴關係文件,再用ninja命令執行實際的構建過程。

特別之處——gn的語法是C風格的(做用域、判斷、循環等),對於有C系列語言基礎的程序員更友好。

 

26. 這個用的哪些庫?
LwIP —— 一個輕量級的TCP/IP協議棧


想了解更多內容,請訪問:

51CTO和華爲官方戰略合做共建的鴻蒙技術社區

https://harmonyos.51cto.com/#bkwz

相關文章
相關標籤/搜索