《HarmonyOS鸿蒙Next网络编程》直播答疑
《HarmonyOS鸿蒙Next网络编程》直播答疑
-
许老师,3861在STA模式下如何获取本机的IP地址,可以修改hostname吗,就是在路由器上显示的名称?
- 答:可以用Hi3861 SDK提供的
netifapi_netif_get_addr
接口,获取本机的IP地址; - 可以用Hi3861 SDK提供的
netifapi_set_hostname
接口,设置主机名称(路由器配置界面上可以查看到);
- 答:可以用Hi3861 SDK提供的
-
今天上课所讲的是属于南向的通信,通过之前的公开课我大概理解了北向开发之间的实时互联,南北之间实现实时互联的一个逻辑是什么?
- 答:目前来说,南北向之间的互联,有两种实现方式:
-
使用鸿蒙的“分布式软总线”,优点是软总线本身已经实现了设备发现、传输层安全等特性,可以比较方便的实现安全、可靠的互联;限制是,对端设备也必须是鸿蒙系统;
-
使用传统的网络协议,例如TCP/UDP/MQTT等;优点是,对端设备只要支持TCP/IP协议即可,可以是任意OS;缺点是,需要开发者自己实现设备发现、连接管理、传输层安全等特性,开发难度和工作量较大;
-
请问鸿蒙系统支持以太网,WIFI多网络共存,是否支持优先级控制?请问支持最新的wifi6吗?
- 答:LwIP支持多网口,鸿蒙网络协议栈用的是LwIP,是支持WiFi以太网共存的,比如3516开发板。目前不支持wifi6。
-
请问老师刚开始讲课时提到,鸿蒙的API跟海思的API都提供了 wifi不同模式,那么在代码里面的体现方式有什么不一样吗?
- 答:最直观的区别是命名风格,鸿蒙API命名是大驼峰,海思API是下划线。
-
Harmony OS所带的TCP/IP协议栈和LwIP的比较?
- 答:鸿蒙带的就是LwIP,只不过有一些修改;海思Hi3861下的lwip添加了一些新的接口例如DHCP服务端等;
- liteos-a上的lwip是socket接口的内核实现,对上接口是glibc风格的,和其他Unix系统基本一致。
-
怎样在hi3516用js写app,调用硬件的能力?像上网,摄像头,喇叭?
- 答:目前开源的openharmony,js引擎使用的JerryScript,使用硬件能力需要:
-
借助JerryScript的C扩展,实现JS调用C代码(具体可以参考JerryScript项目的C扩展文档:https://jerryscript.net/ext-reference-module/,其中最重要的是
jerry_create_external_function
这个接口); -
hi3516上面的话,ace框架对JerryScript的C扩展做了一层封装,在ace框架的封装之上实现扩展,相比直接使用JerryScript的C扩展要容易一些;
-
在C扩展接口的实现中,用C语言实现硬件的访问和控制;
-
请问许老师,如果鸿蒙3861控制机器人,是不是先编写STA链接WIFI,在写UDP绑定端口得代码,然后发送指令?
- 答:是这样的思路,具体实施过程可能需要查阅机器人相关的SDK文档。
-
请问3861和智能音箱该怎么结合呢?例如天猫精灵,打开卧室灯光?
- 答:天猫精灵有SDK,具体信息可以在他们的SDK页面上了解。
-
这个bsd socket跟一般PC上的socket编程有什么不一样的地方么?
- 答:一样的,Socket API最早来源于BSD Unix发行版,所以也叫BSD Socket。
-
请问老师,鸿蒙中主要是异步编程嘛?和go的异步模型有什么区别?
- 答:鸿蒙支持异步编程,但不是主要的方式;少部分API接口是异步的,大部分是同步的。go的异步是由协程(goroutine)和管道(channel)实现的CSP(Communicating Sequential Processes)模型;鸿蒙目前还没有支持协程,但是支持进程和线程(liteos-a上两者都支持,liteos-m上只支持线程)。
-
可以应用到物联网么?比如农业/畜牧业?
- 答:可以的
-
支持鸿蒙系统4G/5G的开发板型号是什么?
- 答:目前还没有支持4G/5G的鸿蒙系统开发板。
-
鸿蒙的liteos-a内核成熟后会不会不再使用linux内核?
- 答:应该不会,liteos-a和linux内核目标设备的资源等级不同,linux用来支持系统资源更丰富的芯片平台,未来一段时间应该是会并行演进的。
-
鸿蒙跟liteos有什么区别?
- 答:鸿蒙是完整的OS,liteos只是内核,两者关系类似于Linux发行版(如Debian、Ubuntu)和Linux内核的关系。
-
鸿蒙OS的开源程度?开源到什么程度,是100%开源吗?
- 答:9月10号的开发者大会上有开源路线图(可以在网上搜到回放),目前不是100%开源,下一步会开源的是鸿蒙的Linux内核。
-
Harmony的优先级范围,如何处理优先级反转问题?
- 答:目前liteos-m和liteos-a的优先级有32个,最高是0,最低是31;“优先级反转问题”LiteOS里面有优先级继承来规避这个问题,但是应用程序使用信号量之类时还是需要细致和小心。
-
请问老师注册的任务是如何执行的?
- 答:启动过程中执行的,具体源码解析可以取社区里面看连志安老师之前发过一篇帖子。
-
必须用windows开发么?可以用linux开发么?
- 答:不是必须的,可以用Linux开发,但是目前烧录工具都是Windows版的,在Linux上需要使用Wine运行烧录工具。
-
HarmonyOS使用什么开发环境?
- 答:南向开发用的是VSCode + DevEco Device Tool,北向用的是DevEco Studio;
-
鸿蒙OS能够实现跨端应用吗?
- 答:可以实现。
-
鸿蒙OS开发应用能够支持热加载吗?
- 答:目前开源的代码里面还不支持热加载。
-
鸿蒙OS开发应用有没有大小限制?
- 答:有一定限制,主要受限于内核和设备本身的内存闪存等硬件资源,例如目前Hi3516开发板有1G RAM,内核的DDRMEMSIZE 定义的是 512M;Hi3518芯片集成64M RAM,Hi3861芯片集成352 KB SRAM。
-
鸿蒙OS适合于开发离线应用吗?
- 答:可以开发离线应用,但鸿蒙支持分布式特性(分布式软总线,分布式调度等),更适合于开发多端协同的应用。
-
HarmonyOS这用的是什么开发语言,要如何玩起来,可以用来解决生活中什么问题?
- 答:南向开发用的是C/C++,北向开发用的是Java/JavaScript,可以用在智能家居之类的应用场景中。
-
编译文件gn和Makefile相比有什么特别之处?
- gn是两阶段的构建,先gn将.gn文件转为.ninja描述的依赖关系文件,再用ninja命令执行实际的构建过程。
- 特别之处——gn的语法是C风格的(作用域、判断、循环等),对于有C系列语言基础的程序员更友好。
-
这个用的哪些库?
- LwIP —— 一个轻量级的TCP/IP协议栈
更多关于《HarmonyOS鸿蒙Next网络编程》直播答疑的实战教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙Next网络编程主要涉及鸿蒙系统的网络通信机制,包括Socket编程、HTTP/HTTPS请求、WebSocket通信等。鸿蒙Next的网络编程接口基于ArkTS语言,提供了丰富的API支持开发者实现各种网络功能。例如,使用@ohos.net.http
模块可以发起HTTP请求,@ohos.net.socket
模块支持TCP/UDP通信。鸿蒙Next还提供了@ohos.net.websocket
模块,用于实现WebSocket通信。开发者可以通过这些模块实现设备间的数据交互、远程控制等功能。鸿蒙Next的网络编程接口设计简洁,易于集成到应用中,支持异步操作,确保网络通信的高效性和稳定性。
更多关于《HarmonyOS鸿蒙Next网络编程》直播答疑的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在《HarmonyOS鸿蒙Next网络编程》直播答疑中,专家详细解答了开发者关于鸿蒙系统网络编程的常见问题。重点包括如何使用鸿蒙的分布式能力实现设备间通信、网络请求的优化策略、以及如何处理网络异常和安全性问题。专家还分享了实际开发中的最佳实践,帮助开发者更高效地利用鸿蒙OS进行网络应用开发。