缘起

昨天晚上在CSDN做了一个关于鸿蒙OS的观点交流。可惜受限于宾馆的网络条件,有些想法没有表达清楚。再加上交流过程中,也从其他老师那了学到了一些观点。故写下此文。以下以QA方式对我(结合了其它老师)参与回答的问题和观点进行了回顾。

Q1:本次鸿蒙2.0 发布,让您感受最深的一点是什么?您看好鸿蒙吗?

我个人非常清晰的体会是鸿蒙不仅仅是针对智能手机的OS。作为一个简单对比,它应该是包含了Android、Android Things、Android Wear、Android Auto等一系列覆盖从IoT到车机再到智能手机的OS们。从目前已知的情况看,这套OS的发展规划是先解决iot,然后逐步上升到智能手机这样的高端设备上。

我个人觉得这是一种务实的做法。在逐步发展过程中可以试错。其中,一个比较关键的阶段是128M-4G这个设备,会涉及到一些内核之外的关键技术,比如图形/图像模块的开发,多媒体系统、应用安装和管理等


总体来说,我更关注在鸿蒙发展壮大过程中自己(或者大部分普通开发者)能做什么,能学到什么、能积累什么。我觉得只盯着鸿蒙OS未来结果是没有太大意义的。在鸿蒙OS发展过程中所培育的人才,所收获的经验教训才是技术上的星星之火。


关于这点,每一个关注过Android Fwk的同学都会有深深的感受。例如SurfaceFlinger中最开始连VSYNC都没有。谷歌也是在以肉眼明显可见的速度在不断改进。我个人最畏惧的国内的IT研发状况是,很多事情只做0到1的工作,从1到N的工作就不闻不问。这种风气和价值观导向会严重干扰和阻挠我们的进步。

Q2:下面想请老师们解读下鸿蒙的机遇和可能遇到的挑战。

我个人定义鸿蒙OS组合的发展策略走得是一条农村包围城市的道路。先从量大的IOT设备开始,逐步上升到中端设备,再到智能手机这样的高端设备。借助分布式,设备虚拟化等概念,打造所谓的超级终端。

发布会后,我和一些小伙伴沟通过,有很多人觉得分布式这个概念不是很好懂,也不清晰。我这里冒昧做一些猜测,尝试解释下整个概念背后的思考逻辑。

华为的核心强项之一是它在通信/连接这块有着非常深厚的技术积累。而分布式最重要和关键的问题是如何解决设备之间的高效和稳定的连通。所以,分布式是华为在设备间联通能力的一个自然而然的升华。

接着说为什么有虚拟化设备(或者设备虚拟化)的概念。这是因为看问题的视角不一样。我在做IoT(是的,你没看错,我做了一年多的IoT,和中移动物联网一起做的)的时候,从上层应用角度来看,我更倾向于把IoT设备看成是数据源,我其实不太关心也不想关心摄像头、传感器是哪家的(很多时候这涉及到设备的采购,非常麻烦),上面跑的是单片机还是OS,底层通信协议是NB-IOT还是LoRa。我只希望这些传感器按约定好的数据传输和交互就行了。

这种把外部设备看做是数据源/数据目的端是非常通用(我甚至觉得是比设备虚拟化更抽象)的看法,比如我早年间做的DLNA就是这样。

从华为角度看,如果通过数据这种抽象(其背后是协议的功劳)将硬件差异化都屏蔽了的话,鸿蒙的IoT OS就没有办法渗透到设备上去了。所以,分布式+设备虚拟化是将鸿蒙OS渗透到IoT设备上的关键支撑。

以上推测是非常粗陋的。昨天蒋总补充了几点,他也问过王博(华为CBG软件部总裁王成录)类似的问题。答复是其中还有一些上面没提到的关键技术细节,比如软总线、设备间的软时钟同步等。意思是华为在分布式和虚拟化设备这两块是实实在在把远程设备当做本地设备在处理了(而不是我之前那种将它们看做数据源的方式,这种方式相对比较简单)。

另外,鸿蒙这种做法的风险是什么?我个人觉得,虽然众多设备被虚拟化,分布式部署了,但目前来看毕竟还是有一个中枢系统——就是1+8+N中的1,手机。如果手机被掐脖子,就是单点问题,风险非常高。一个可能的解决办法就是将这套分布式、设备虚拟化的技术的协议标准化,让其他家手机也支持。

另外,这里还忽略了边缘计算设备的存在感。边缘计算的核心是把来自更底层设备(比如传感器)的数据进行加工处理以提高响应速度。比如,车机就是一个边缘计算器,它会把大量的来自车载传感器的数据进行处理(如果这些数据发给一个云端服务器再处理的话时效性就很差,无法处理紧急情况)。在这种模式下,分布式,设备虚拟化就很难再渗透到车机之下的众多传感器了。

有没有可能这套实现了分布式、设备虚拟化的技术赋能给非华为的公司?这不是一个幼稚的问题。看看高通,再看看SONY集团卖摄像头芯片的(对外部的大客户比对自家的SONY移动支持度更好)、以及三星卖存储、显示屏、甚至CPU芯片,他们的客户都不局限在集团内部。

Q3:明年华为智能手机将全面使用鸿蒙,很多开发者关心鸿蒙是否真的能替代安卓系统,对此您怎么看?

此问题原文不是这么问的,大致是这么个意思。我的观点如下:

太多人纠结鸿蒙未来能不能取代安卓系统。这是个封闭性的问题,答案为是或者不是。我们不妨换个思路看这个问题。假设鸿蒙取代了安卓,皆大欢喜,大家回家洗洗睡。如果没取代安卓又怎样?微软没干成,三星没干成,又如何呢?这妨碍微软不牛吗,三星不牛吗?

再者,在这个开发OS的过程中,我们难道毫无收获?显然不是,我们会培养,造就大量的OS方面的人才,这是多么大的一笔财富。前几个月神农班上某同学跑到清华去找合作,想找几个搞webkit底层的同学,结果人家博导说学生们都去搞AI,区块链这些能赚钱的事情了。

我们一方面痛恨打着完全自主开发名号的OS、浏览器,一方面又把所有希望不合理的强加在一个公司上,这像是踏踏实实一步一个脚印搞研发的心态么?我个人觉得,中国要做到真正自主可控(注意,我说的是自主可控,意思是鬼子一旦撒手跑了,我们自己也能干。自主可控不是一个什么高大上的名称,凡是用过外包的企业都会要求这一点)的OS,浏览器,编译器至少还需要10年到20年的时间。如果没有华为这样的公司砸钱搞基础技术研发,这个时间恐怕还得大大延长。

现在国家、很多公司都在往基础技术上做投入,这是一个好时代,非常感谢大洋对面的金毛及其团队。最后,科技竞争是一个长期的、艰苦的、胶着反复的过程,大家做好打持久战的准备即可。

Q4:关于国产操作系统,我们还有很多路要走,请大家给一些建议和看法。

我是作为一名普通开发者身份参与这次直播对话的。普通开发者构成了当前对鸿蒙乃至国产OS的评论主体,我觉得有必要传达和引导一种正向的,积极的态度。

首先,作为一名普通开发者,碰到当前世界处于百年未有之大变局的时候,应该抱着积极心态主动参与。虽然神农班的班规中提倡个人自由表达不同的观点,但我觉得情绪宣泄过后,是不是可以考虑要不要做点什么?不做就没有收获。当然,一切都自便,大家开心就好。

其次,要树立功成不必在我,功成必定有我的心态。这个心态并不是说压迫你干活还不给钱,而是说不要把“必须成功”当成个人甚至团队的唯一目标了。我们打得是持久战,注意积累,培养。很大可能是其他人会站在你们的肩膀上继续战斗乃至获得最终的成功。

最后,星星之火可以燎原,OS以及更多基础核心技术自主可控的这面红旗无论如何都要竖起来,扛下去,我相信大家对此已经没有争议了。在这里希望能有更多人,甚至国外的开发者一起参与开发、建设、生态的培养等。

恩,确实还有很多事情可以做,很多知识可以学,岂不乐哉?

最后的最后

  • 我期望的结果不是朋友们从我的书、文章、博客后学会了什么知识,干成了什么,而应该是说,神农,我可是踩在你的肩膀上的喔。

  • 关于学习方面的问题,我已经讨论完了。后面这个公众号将对一些基础的技术,新技术做一些学习和分享。也欢迎你的投稿。不过,正如我在公众号里说的那样——郑渊洁在童话大王《智齿》里有一句话令我印象深刻,大意是“我有权保持沉默,但你说的每一句话都可能成为我灵感的源泉”。所以,影响不是单向的,很可能我从你那学到的东西更多。

                                                                                  神农和朋友们的杂文集

                                                                                  长按识别二维码关注我们

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐