作者:魏永明(飞漫软件 CEO)
首先声明,本文仅代表笔者本人的看法。信我就正确,不信我就未必正确。
华为的朋友给我申请了一个特邀码,所以有幸去现场参加了华为的第二届开发者大会。在这次的开发者大会上,华为宣布开源鸿蒙(HarmonyOS)2.0 的源代码,并给大家讲解了鸿蒙操作系统的架构、开发环境以及一些应用场景。
但从这几天交流的情况来看,大量从事操作系统相关开发的人员,对鸿蒙还存在着很多误解,而普通群众只能跟着沸腾。当然这个问题是华为自己造成的。比如,去年的第一届开发者大会上,余承东着力渲染了鸿蒙的微内核,尤其是实时性、低延时等,而在这次的大会上却只字未提,而且开源出来的代码使用的仍然是 liteOS 内核,这就让很多人非常困惑。
所以本文就帮大家梳理一下,省得被乱七八糟的信息迷惑了双眼,看不清鸿蒙对未来可能产生的重大影响,甚至找不到自己的方向或者一不小心被华为碾压。
第一个问题:华为为什么要做鸿蒙操作系统?
这个问题的答案地球人都知道,就是因为智能手机的操作系统安卓被美国卡脖子了。但有人问了,卡脖子的是GMS,华为不是做了 HMS 替代吗?继续用开源的安卓就好,干嘛要自己开发一个操作系统?难道怕安卓也会被禁?
如果我们认为华为做鸿蒙仅仅是为了替代安卓,那就小看华为了。
华为本质上一家卖硬件产品的公司,华为的智能手机在国内的市场份额已经超过了 50%,快接近天花板了,所以前几年开始,华为就在积极布局所有能和手机连接的设备,从手环、手表、音箱到车载,几乎囊括了所有只需要硬件和软件就能工作的消费类电子产品。
而谷歌是个互联网公司,安卓只为智能手机服务,谷歌对物联网、全场景的应用需求理解比不上苹果和华为,加上中美目前这个关系没有任何改善的希望,所以,华为要自己做操作系统,目标一定是超越安卓,而不是简单模仿。
于是,分布式、全场景这两个词就被华为频繁提及。一般人很难理解,但如果你知道华为卖的那些硬件产品和手机的关系,就知道这两个词的内涵了。
通过打造鸿蒙操作系统,华为要进一步巩固和扩大其智能手机的市场份额,要建立围绕智能手机的一个封闭的生态系统,各个设备可以做到极简、顺滑的互联互通体验,这样,能够和华为手机相连接的产品就会很好卖。于是,消费者除了会买华为手机,还会买华为路由器、手表、手环、音箱,或者里边运行着海思芯片的其他周边产品。这是华为的商业目标。为了达到这个商业目标,华为需要一个新的操作系统,一个超越安卓的操作系统,于是鸿蒙出世。
但鸿蒙仍然和安卓有着千丝万缕的关系。因为支持智能手机的鸿蒙还没有发布,所以大家最为关心的鸿蒙和安卓的关系问题仍然是一个悬念。
从技术上看,鸿蒙提到了一个重要的开发理念:一次开发、多端部署。为了达到一次开发、多端部署的目的,华为提出了元程序、元服务的概念,通过抽象的 Ability 重新定义了应用的开发框架。这个东西是安卓没有的。从这点上看,鸿蒙不是安卓的一个简单复制。
但是,智能手机有大量现有的存量安卓应用,华为必须选择支持这些安卓应用。根据笔者的观察,华为最终会选择如下一条道路:
所有的安卓应用,使用方舟编译器重新编译后,可运行在鸿蒙操作系统。也就是说,在鸿蒙操作系统的手机版本中,会存在一个安卓的运行时支持子系统,但安卓应用并不能直接运行在鸿蒙系统上。
谢天谢地,鸿蒙没有选择笔者一直反对的兼容道路,而选择了打造自己的应用框架及 API,这值得点赞。
要知道的是,这些安卓应用将来要运行在鸿蒙手机里边,一定需要调用华为鸿蒙的特有接口以及HMS的服务。这意味着:鸿蒙和安卓就此分家,中美科技在智能手机操作系统上从此分叉。
再回答大家关心的几个细节问题:未来要发布的鸿蒙智能手机版本会继续使用 Linux 内核。华为发展的微内核只会用到安全芯片里边,一般的开发者基本不会跟这个微内核打交道。这从另一个角度说明了一个道理:做操作系统先做内核的思路是错误的。华为的选择很正确:我们用鸿蒙的时候,可以把内核换成其他的 RTOS 内核,比如 RT-Thread 或者 FreeRTOS。
另外,鸿蒙提供了两套应用框架,一套是类 Web 的,有点像快应用或者小程序的开发框架,一套是基于Java的框架。前者主要用于手环、手表等低端设备中,也不是鸿蒙主推的框架,那 Java 的才是。还有一个要点需要说明:有了方舟编译器,鸿蒙的 Java 运行环境就不需要虚拟机了,而且性能会有很大的提升。
也就是说,从开源的鸿蒙 2.0 中可以看出,虽然鸿蒙中缺乏一些令人激动的创新和突破,但鸿蒙算得上是一个真正可以自主发展的、有笔者所说的自己的应用框架和API的操作系统,唯一的缺憾是没有自己的编程语言。当然,这个急不得,慢慢等吧。
第二个问题:鸿蒙为什么要开源?
事实是,华为智能手机在国内的市场份额已经超过了 50%。在这么大的存量用户基础以及未来可预期的增长下,华为的鸿蒙生态就足以生根发芽,就像苹果的生态一样,开源与否其实并不重要。
显然,华为想要的更多。一定不要认为华为开源是为了做雷锋。在我看来,华为开源鸿蒙的目的,主要是为了卖海思芯片。君不见,鸿蒙开源代码里边,所有已支持的芯片,全部都是Hi打头的吗?
毕竟除了华为自己要亲自做的手机周边产品之外,还有大量的物联网设备是华为做不过来的。通过开源,就可以覆盖这些产品,大部分开发者会选用海思芯片,最终还是华为挣钱。
当然,华为也会支持其他物联网芯片公司采纳鸿蒙操作系统,就算挣不到芯片的钱,还可以通过鸿蒙打造的全场景物联网应用环境,间接促进华为智能手机的销售。
反正不管怎么样,谁做了成功的操作系统,谁就是最大的受益者,不论靠硬件、服务还是芯片赚钱。
第三个问题:开源的鸿蒙会冲击哪些公司?
开源、免费的安卓碾压了一众靠功能手机业务活着的公司。笔者亲历这段历史,对此记忆犹新。
开源、免费的鸿蒙一定会重复这个历史。首当其冲的将是数量繁多的实时操作系统或者物联网操作系统。
当然,传统物联网操作系统的市场碎片化严重,华为也不太可能在一夜之间让鸿蒙一统天下。所以,相关公司最多还有三年的战略调整时间窗。调整好了,也许可以继续生存,调整不好,被碾压了也不能怪华为。
第二波会被波及的公司是安卓阵营中的国内智能手机公司。这些公司会很难受,不知道该选谷歌还是华为。选华为鸿蒙,失去国外市场,选谷歌安卓,失去国内市场。事情的发展一定会有利于华为,一旦这些手机厂商最终选择华为,中美科技脱钩即成现实。
第三波被波及的公司是那些国产桌面操作系统公司。五年左右的时间窗,鸿蒙搞定了智能手机,接下来要搞定的就是桌面操作系统。所以目前那些靠装修Linux发行版活着的国产操作系统公司,结局堪忧。