当前位置: 首页 > 科技观察

《鸿蒙HarmonyOS网络编程》直播问答

时间:2023-03-21 15:53:40 科技观察

更多信息请访问:与华为共同建立的Harmonyos技术社区https://harmonyos.51cto.com/#zz1。徐老师,STA模式如何获取3861hostname可以修改为本机的IP地址,也就是路由器上显示的名字吗?答:可以使用Hi3861SDK提供的netifapi_netif_get_addr接口获取本机IP地址;可以使用Hi3861SDK提供的netifapi_set_hostname接口设置主机名(可以在路由器配置界面查看);2、今天的课是关于南向通信的。通过之前的公开课,大致了解了北向开发的实时互联,以及实现南北实时互联的一个逻辑。什么?答:目前南北互联互通有两种方式:1、采用Harmony的“分布式软总线”,优点是软总线本身实现了设备发现、传输层安全等特性。实现安全可靠互联相对方便;限制是对端设备也必须搭载鸿蒙鸿蒙系统或HMSCore安卓设备(必须是华为设备);2、使用传统的网络协议,如TCP/UDP/MQTT等;优点是对端设备只要支持TCP/IP协议,可以是任何OS,任何形式,不一定是华为设备,不一定是手机;缺点是需要开发者自己实现设备发现和连接管理、传输层安全等特性,开发难度大,工作量比较大;3、鸿蒙系统是否支持以太网和WIFI多网共存,是否支持优先级控制?支持最新的wifi6吗?答:LwIP支持多网口,鸿蒙网络协议栈使用LwIP,支持WiFi和以太网共存,如3516开发板。目前不支持Wifi6。4、老师在开讲的时候提到鸿蒙的API和海思的API都提供了不同的wifi模式,那么在代码中体现的方式有什么不同吗?答:最直观的区别就是命名方式,鸿蒙API用大驼峰命名,海思API用下划线命名。5、鸿蒙OS的TCP/IP协议栈与LwIP的对比?答:鸿蒙自带的是LwIP,但是有一些修改;海思Hi3861下的lwip增加了一些新接口,如DHCP服务器等;liteoslwipon-a是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接口);C扩展有一层封装,扩展是在ace框架的封装之上实现的,比直接使用JerryScript的C扩展更简单;3、在C扩展接口的实现上,用C语言实现对硬件的访问和控制;7、请问徐老师,如果是鸿蒙3861控制机器人,是不是要先把STA链接写到WIFI,再写绑定UDP端口的代码,然后再发送命令?答:这是思路。具体实现过程文档可能需要查阅机器人相关的SDK。8、3861如何与智能音箱结合使用?比如天猫精灵,打开卧室灯?答:天猫精灵有一个SDK,你可以在他们的SDK页面上了解更多。9.这个bsdsocket和一般pc上的socket编程有什么区别吗?答:同理,SocketAPI起源于BSDUnix发行版,所以也叫BSDSocket。10.老师,异步编程主要用在鸿蒙吗?和Go的异步模型有什么区别?答:鸿蒙支持异步编程,但不是main方法;少数API接口是异步的,大部分是同步的。Go的异步是由协程(goroutines)和通道(channels)实现的CSP(CommunicatingSequentialProcesses)模型;鸿蒙目前还不支持协程,但是支持进程和线程(在liteos-a上都支持,liteos-m只支持线程)。11、能否应用于物联网?比如农业/畜牧业?答:是的。12、鸿蒙系统支持4G/5G的开发板型号是多少?答:鸿蒙系统有支持4G/5G的开发板吗?13、鸿蒙的liteos-a内核成熟后会不会不再使用linux内核?答:可能不是,liteos-a和linux内核目标设备的资源级别不同,linux用于支持系统资源更丰富的芯片平台。它应该在未来一段时间内并行发展。14、鸿蒙和liteos有什么区别?答:鸿蒙是一个完整的操作系统,而liteos只是内核。两者的关系类似于Linux发行版(如Debian、Ubuntu)与Linux内核的关系。15、鸿蒙OS开源到什么程度?它在多大程度上是开源的?它是100%开源的吗?答:9月10日开发者大会上有开源路线图(网上可以找到replay),目前还不是100%开源。下载下一步要开源的是鸿蒙的Linux内核。16、Harmony的优先级范围,如何处理优先级倒置问题?答:liteos-m和liteos-a目前有32个优先级,最高为0,最低为31;“优先级倒置问题”在LiteOS中有优先级继承来规避这个问题,但是应用在使用信号量之类的时候还是需要小心谨慎。17.教师注册任务是如何执行的?答:在启动过程中执行。具体的源码分析可以参考连志安老师在社区发的帖子。18、一定要用windows开发吗?可以用linux开发吗?答:不需要,我可以用linux开发,但是目前的烧录工具都是windows版的,需要用wine在linux上运行烧录工具。19.HarmonyOS使用什么开发环境?答:南向开发使用VSCode+DevEcoDeviceTool,北向开发使用DevEcoStudio;20、HarmonyOS能否实现跨终端应用?答:是的。21、鸿蒙OS开发应用是否支持热加载?答:目前开源代码不支持热加载。22、鸿蒙OS的开发应用有大小限制吗?答:有一定的限制,主要是受内核等硬件资源和设备本身的内存闪存的限制。比如目前的Hi3516开发板有1GRAM,内核的DDRMEMSIZE定义了512M;Hi3518芯片集成了64MRAM,而Hi3861芯片集成了352KBSRAM。23、鸿蒙OS适合开发离线应用吗?答:可以开发离线应用,但鸿蒙支持分布式特性(分布式软总线、分布式调度等),更适合开发多端协同应用。24、HarmonyOS使用什么开发语言,怎么玩,可以用来解决生活中的哪些问题?答:南向开发使用C/C++,北向开发使用Java/JavaScript,可以用在智能家居等应用场景中。25.编译文件gn和Makefile有什么区别?gn是一个两阶段构建。gn首先将.gn文件转换为.ninja描述的依赖文件,然后使用ninja命令执行实际的构建过程。特别之处——gn的语法是C风格的(作用域、判断、循环等),对有C系列语言基础的程序员更友好。26.哪些库用于此?LwIP——一个轻量级的TCP/IP协议栈更多内容请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com/#zz