想了解更多内容,请访问:linux
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协议栈