给鸡贼的鸿蒙泼点凉水
大家好,我是皮哥,纯属个人言论,没有态度,只讲事实。
6 月 2 日发布会上会公布鸿蒙系统第一批升级名单,后续再逐步公布各批次升级时间。首批名单包括:Mate40、Mate40 Pro、Mate40 Pro+、Mate40 RS、MateX2、P40 系列、nova8、nova8 Pro、MatePad Pro。
这意味着,继 2019 年“官宣”鸿蒙操作系统后,万众期待的鸿蒙手机要来了,华为手机将彻底抛弃基于安卓的 EMUI,准备了近两年的“备胎”系统鸿蒙 OS 正式转正。升级鸿蒙 OS 后,开机界面已经没有 Android,显示了 HarmonyOS。
那么鸿蒙到底是什么?
Harmony 是什么?
严格来讲鸿蒙并不是某个具体产品形态上的OS,长远看会是一款微内核,全场景的操作系统,分为L0到L5六个级别,但这个长远的时间具体不定。
级别 | 产品 |
---|---|
L0 | 手环,智能IoT |
L1 | VR眼镜,智能配件,内核是liteos |
L2 | 音箱,摄像头,行车记录仪,内核是linux |
L3 | 智能手表,相对于L2的高分辨率显示 |
L4 | 电视 |
L5 | 手机,平板,电视,汽车 |
前两级和小天才电话手表没有什么本质的区别,L2级依然看不出OS体现在哪里。从整个级别图看,既有liteos,又有linux内核,还有liteos-a,有点不理解鸿蒙到底是什么?难道是吸星大法?
所以,在吐槽的时候我们要分清论点是什么,论据又是什么。总不能拿着鸿蒙手机,指着L2的开源代码说:看,华为真的做到了!
鸿蒙IoT没什么可说的,这里,我们只说鸿蒙手机。
根据鸿蒙目前公开的开源代码来看,也只是陆续开源到L2级别,也就是说我们无法知道鸿蒙手机到底是不是安卓套皮,但有人从已经开放的SDK、IDE、开发示例、编译产物中偷窥了一下HarmonyOS的底裤。
一句话来说:手机HarmonyOS = 原有的Android系统 - GMS + HMS + 分布式软总线 + 以Ability为核心的应用开发框架
这里大家最关心应该是 分布式软总线 和 Ability应用开发框架 ,这也是现在操作系统最重要的两点:跨设备连接和跨设备显示。分布式软总线用来解决跨设备连接的事,Ability应用开发框架用来解决跨设备显示的事。
分布式软总线
分布式软总线并不是很新奇的技术,开源仓库就有一大把,我曾经见过很多公司也都有自己的一套分布式总线架构。本质上是以订阅,广播的方式在不同事件,设备中分布式地发送,接收。工作难度在于不同通讯协议的封装和兼容,不过这对通信起家的华为不是难事。
鸿蒙应该是将物联网通讯技术(NFC、蓝牙、WIFI……)与协议(CoAP、RPC……)做了良好的封装,以及对数据格式(HarmonyOS IDL)以及服务(PA)做了良好的抽象,使局域网内的设备之间可以方便的通讯、交换数据、调用远程服务,设备之间仿佛融为一体。
当然,这都是猜测。
本着公平公正的严谨态度,打算从官方公布的开发文档中一探究竟,但没有发现关于「分布式软总线」的API,只找到三个与其「分布式技术」所描述的特性相似的三个功能:
分别是:
-
分布式任务调度
-
分布式数据服务
-
分布式文件服务
打开对应的打开ohos.jar包后,通过分析依赖关系,发现,大多数与分布式相关的包都依赖于:
ohos.rpc.*
以及官方文档中有关「分布式任务调度」所依赖的包
这里,我觉得我们有理由相信:所谓的「分布式软总线」实际上是一个私有的RPC协议。
Ability应用开发框架
Ability应用开发框架解决的是跨平台显示问题。
跨平台显示的方案目前市场上也有几种,比如微信小程序,Flutter框架。微信小程序这种web级应用大都是JS开发的界面,来实现诸如「无缝流转」、「远程启动」、「迁移」等功能。
我们先来看下Ability框架图:
可以看出和普通OS的框架设计没有太大的区别,无论谷歌的Android还是三星的Tizen,应用上都分为web和native两种,即这里的JS Ability和Native Ability。
JS应用框架如左上图所示,分为:
-
JS引擎(JS runtime)是三星开源的IoT JavaScript引擎:JerryScript
-
JS应用框架只负责解析JS Bundle,有可能是JS Bundle由JS Framework解析后将数据交给了Android,由Android负责将其渲染在SurfaceView上。从这个耦合性的设计角度看,目前HarmonyOS还离不开AOSP,当然,这种解耦的架构设计,也为未来离开AOSP打下基础。
至于Native Ability在LiteOS中指的就是C语言实现的Ability,在Harmony手机中就是Java实现的Ability。前者比较简单,不在本文讨论范围内。后者的实现目前我们无法得知,网上也找不到相关的资料介绍。大胆猜测一下,这里有两种可能,一种是AbilityKit里对安卓Activity做了封装,最终将数据传给安卓并在SurfaceView上渲染;
另外一种是类似Flutter的实现,Flutter是Google发布的全新的移动跨平台UI框架,渲染引擎依靠跨平台的Skia图形库来实现,依赖系统的只有图形绘制相关的接口,可以在最大程度上保证不同平台、不同设备的体验一致性,逻辑处理使用Dart语言,执行效率比JavaScript高。
所以,鸿蒙到底是什么?这里借用一位网友的总结,鸿蒙是一个歧义词,指代3-4个东西:
-
鸿蒙A:就是 liteOS 的肉体延续
-
鸿蒙B:目前就是AOSP的延伸改进,基于AOSP的
-
鸿蒙C:貌似有一个微内核
-
鸿蒙D:一个筐,什么都可以装
现在我看到的讨论混杂了 ABC,这样基础信息都不一致的讨论没有太大的意义,如果真要吐糟的话,我愿意吐槽这是华为宣传出来的锅,至于是否华为有意为之,不得而知。
Harmony 开源后友商会跟进吗?
国内做手机,智能硬件的厂商一大堆,必然有的选择跟进鸿蒙,有的观望。如果谷歌站出来对手机厂商表态,安卓和鸿蒙必须选择其一的话,我相信小米,oppo等必然不会贸然跟进鸿蒙,但对于本来就没多少市场占有额的厂商来说加入鸿蒙,必然是个不错的选择(我可没有黑魅族的意思)。所以,手机厂商的选择很大一部分还要取决于谷歌的态度。
智能家居领域,厂商就相对有了自己决策的权力,但智能家居友商也有自己面对的难处,就像上文所说,该市场碎片化严重,如何战队,如何选择带头大哥是他们需要考虑的问题,同样在战略上缺失的厂商大概率会很积极加入,我就不说是谁了。
APP方面,据说目前已经有 200 多软件厂商商谈鸿蒙 App 的事情了。
Harmony 有可能会成功吗
Harmony是否能帮助华为造就自己的护城河,实现万物互联的大市场,个人觉得比较难。
技术层面上看,非手机的嵌入式设备,市面上的竞品有很多,除了华为的LiteOS外,还有RT Thread,TencentOS tiny,AliOS Things,Xiaomi Vela等。这种OS最大的挑战就是硬件资源太多,而且每家都想有自己的生态平台,不容易一统。
手机这种嵌入式设备上,安卓大行其道。支持Dart虚拟机的设备上又有Flutter的跨平台支持,web的话又有小程序压力。Harmony可谓是“背后受敌”。
但Harmony也有自己的聪明之处,由于物联网设备的硬件碎片化,难以从OS的角度统一,转而利用应用框架的方式把这些软件和硬件绑定起来,也不失为一种好的策略,低耦合性的设计也给未来微内核的“升级”提供可能,即解决了目前的市场压力,又提高了未来发展的成功概率。
跳出技术思考的范畴,鸿蒙即便是安卓“套皮”,我表示也是支持的,这是很聪明的做法,毕竟手机还要卖,生态一时间难以建立,这种情况下,模糊迂回的持久战不是上策是什么?
无论鸿蒙是什么,从上面的分析可以看出,华为还是做了不少工作的。一码归一码,大背景不好的情况下,短时间内很难做出可以取代安卓的成熟OS,但战略上又必须去做。我们要知道,有些事,在没做的时候就已经成功了,Harmony的出现就是这样的战略选择,无论Harmony最终如何,对于华为来讲都是必须去做的事。
最后,希望Harmony能够成功,国内其他OS也能成功,只要是国产的,都应该支持,毕竟,即便输了,也是一种赢。
5T技术资源大放送!包括但不限于:C/C++,Arm, Linux,Android,人工智能,单片机,树莓派,等等。在公众号内回复「
peter
」,即可免费获取!!
记得点击 分享 、 赞 和 在看 ,给我充点儿电吧