周五我在东莞出差,下班后看了开发者大会的视频回放,回到酒店,我跟邓总说,我们今天不要拍视频,也不要打王者了,你给我下鸿蒙的代码来看看,然后,那天晚上我们都没有上线王者,邓总把代码下载后研究了3个小时。
后面我跟韦老师聊了下,韦老师是参与鸿蒙开发的,他很兴奋,也很开心,这因为鸿蒙有一部分的心血也是来自于他,然后他跟我说「先这样吧,我晚上要把鸿蒙移植到我们的开发板上」,然后,那天晚上大家都看到韦老师发的那个朋友圈,鸿蒙移植成功,做嵌入式开发的人都懂,调通一个东西后,那种愉悦和放松的心情,总是想伸个懒腰休息一下。
对我而言,我对鸿蒙期待不是很大,而且我是觉得鸿蒙在一定程度上是需要吹牛的「之前的那个发布会是需要吹牛,但是这次的这个,能看到鸿蒙需要大家一起的努力的」,这点上,希望我是错误的,因为韦老师告诉我,参与鸿蒙开发的人,在国内都是属于顶尖的。
但是,鸿蒙依然会遇到一些问题,这些问题可能不仅仅是技术就可能解决的。
鸿蒙对标的是安卓系统,而且鸿蒙为了兼容现在的设备,鸿蒙一定需要兼容安卓的某些特性「比如adb」,要不然现在的所有设备使用上就有问题。
OS和内核是两个东西,鸿蒙的内核可以是Linux,也可以是华为自己开发的内核,看代码命名是Liteos_a,这个是一个实时内核,实时内核和非实时内核有非常明显的区分,我们正常使用的windows,Linux等都是分时系统,每个任务都有一个时间片,实时系统调度算法和分时系统是不同的,像嵌入式系统freertos,rtt是实时系统。从这里隐约可以看出来华为的对手并不是Linux。
---- 举例子
一年级的小明,每天都在努力跑步,并宣称说,我要打败那个三年级的大雄,然后等过了几天,小明对同班的小花说,我要打败的人是你,在一年级这个班级,我才是真正的老大。
ps:Linux内核也可以打上实时补丁。
---- 如果鸿蒙VS安卓
安卓开发的应用需要重新开发,这部分不仅需要华为方面的努力,还需要产品公司的人去学习鸿蒙的api,一款应用可能需要ios、安卓、鸿蒙三个系统的开发人员,因为现在世面上的鸿蒙手机还没有,所以这个技术积累还是很少的。
---- 厂商愿意不愿意使用鸿蒙,这个才是最大的问题。
我们知道,手机芯片原厂释放芯片的同时也会释放SDK包,如果需要占领手机市场,那就需要搞定这些芯片原厂,适配他们的芯片,适配他们的外设,虽然安卓发展到现在已经很多个版本了,但是依然每天有很多问题需要解决。
安卓发展到现在,也出现了很多新颖有用的特性,比如我之前在视频里面提到的,Android 9之后有一个特性「就是不需要关闭WIFI也能打开手机热点」,这是一个非常有效而且有用的功能,这个功能可以让信号覆盖不到的地方组网,而且安卓的很多现有特性对用户来说是非常重要的,用户会为了鸿蒙而抛弃体验吗?
鸿蒙想达到安卓,我觉得路子还是非常长。但是Liteos是非常值得期待的。
因为Liteos要打的可能不是Linux而是一些嵌入式RTOS,比如Freertos。
但是这也会遇到同样的问题,芯片厂商愿意不愿意花精力和心思去做这个事情,比如说Nordic,这个是一个非常典型的蓝牙芯片,它有自己的app,协议栈,如果让他们在他们的芯片上重新开发Liteos,不管从稳定性,可量产性,都还是未知的。
我之前做的ESP32,用的是Freertos,如果Liteos想占领IOT市场,就需要在这方面下功夫,比如让厂商在芯片上移植Liteos,相对于搞定高通这样的芯片厂商,搞定乐鑫这样的国产芯片相对容易多了。
鸿蒙的出来,在学生和开发者之中是比较轰动的,学生和开发者都喜欢大牛,喜欢新鲜的技术,而且学生和开发者大部分有情怀,但是鸿蒙想靠开发者和学生去一统江湖,有困难,因为资源在厂商手里,不是在开发者和学生手机。但开发者和学生的作用却很大,他们可以移植Liteos到不同的芯片上去,扩大Liteos的使用,提升Liteos的稳定性和扩展性。
13年,那时候,平板行业非常火热,然后也有一家国内大企业想吃一下这块蛋糕,跟方案公司合作,但是后来没有量产,一个原因是芯片原厂技术支持不到位,出现的问题比较多,做产品跟做技术不一样,做产品的周期非常短,不可能原地等待原厂研究很长时间。
----为啥Liteos使用驼峰命名?
这个就是一个习惯的问题,并不能说谁好谁不好,但是如果以前看Linux代码都是下划线的形式,突然变成大写,第一感觉就是有点奇怪。
缩进方式用空格缩进我觉得这是一个提升,tab键因为在不同的软件中会显示不同,总是需要设置才能显示正常,也算是制定了好的标准。
---- 中文注释
在每个文件的前面,会有一串英文解释这段代码的作用,有点疑问,为什么不直接写成中文。毕竟中文的话,阅读起来会相对轻松一些。
---- 其他
其他也说不出个所以然,大家看到鸿蒙应该都会有自己的看法,也想知道要不要跟着华为走,现在要不要开始学习鸿蒙,我觉得这些都是太过于着急了。
那天直播结束,我们就联系了一个朋友,说要买点海思的芯片,得到的消息是芯片已经是断货状态,我猜测,可能已经有人开始操作了。
看代码可以看到其实很多技术是相通的,而且因为是中国人维护和开发,文档和交流上会方便很多,我觉得没必要紧张,该怎么学习还是怎么学习,至少我觉得可以说明一点,到目前位置,脱离C语言来写内核还不太现实,好好学习C语言,学习操作系统,不说其他的,学习51单片机也差不到哪里去。