本文为学习笔记,并非原创。原文链接,原文发表于2021-06-09
HarmonyOS分析
原作者通过分析HarmonyOS应用的构建产物,得出如下结论:
1.构建产物中,包含一个标准Android的apk文件。该apk内AndroidManifest.xml文件中做了两件事:
1)定义Application为ShellApplication
2)定义MainActivity为MainAbilityShellActivity
2.ShellApplication最终继承自Android的Application。
3.MainAbilityShellActivity继承自Android的Activity。
原作者认为鸿蒙的分布式软总线
是一个私有RPC协议。通过OpenHarmony源码分析,分布式软总线
主要有以下几个模块:
- 设备发现:采用了CoAP协议作为设备发现协议,通过在一个局域网内发送广播来实现。
- 数据传输:基于Session提供统一的数据传输功能。
- 设备认证与管理:主要是安全。
- AceEngineLite:应该就是JS开发的Ability页面如何编译以及 在嵌入式设备上如何渲染的相关实现,这也许就是为什么HarmonyOS可以采用多种开发语言开发界面的关键所在。各种小程序、Flutter相关设计都是这样的,设计思想都是:自创UI框架以屏蔽系统差异。
原作者认为,HarmonyOS = Android - GMS + HMS + 分布式软总线 + 以Ability为核心的应用开发框架,用图表示:
原作者认为HarmonyOS在很长时间内无法剔除AOSP
HarmonyOS能实现华为的目标吗?
商业操作系统成功的因素主要有:系统优势、商业运作、生态建设。
系统优势
目前HarmonyOS有两个独有特性:
-
一个跨平台的JavaScript应用框架(Ace Engine)
-
分布式软总线
替换不了的几个部分:
- Linux Kernel:国内没人搞得定
- AOSP:为了兼容Android应用
- 为什么Ability要交给AOSP去渲染:国内没人搞得定(计算机图形学)
- 为什么LiteOS的JS Framework都自己实现,但JS runtime还要用三星开源的JerryScript:国内搞不定(编译原理)
在IoT领域,两个独有部分可以形成技术壁垒吗?
操作系统
物联网市面上的竞品有很多,除了华为的LiteOS外,还有TencentOS tiny、AliOS Things、Xiaomi Vela、RTOS……
LiteOS与其他相比最大的特点就是功能封装的更加友好,也更加统一,但最大的缺点也源于此:它需要的硬件资源太多了,对于绝大多数物联网设备来说,硬件成本是不可承受的。而如果裁剪掉这部分,那么和其他的IoT系统并没有太多区别。
Ace Engine
Ace Engine与小程序以及Flutter的设计思想与架构完全一样。 Flutter由于Dart虚拟机无法运行中资源有限的嵌入式设备中,所以在IoT领域不能成为竞争对手。
微信小程序支持Android、IOS、HarmonyOS(由于兼容Android),而且有WMPF(Wechat Mini-Program Framework,小程序硬件框架)的存在。目前微信小程序也可以运行在Windows、Mac、嵌入式设备上,基本覆盖了Ace Engine的所有设备(HarmonyOS、嵌入式设备)以及Ace Engine不支持的设备(IOS、Mac、Windows)。
分布式软总线
有众多开源和其他厂商。
微信小程序的优势:
- 在微信小程序中做物联网应用,可以支持更多的平台(HarmonyOS vs Android+IOS)
- 在微信小程序中做物联网应用,开发成本更低(小程序 vs App)
- 在微信小程序中做物联网应用,推广成本更低(微信小程序生态 vs 华为App生态)
- 在微信小程序中做物联网应用,获客成本更低(即开即用 vs 下载、安装App)
HarmonyOS的优势仅在于,系统内的RPC(分布式软总线)性能要比应用内RPC好。
如果分布式软总线
这条路是无价值的,那么作为HarmonyOS最大的卖点,HarmonyOS所做的种种努力都是白费的。而如果分布式软总线
这条路走得通,极其容易被别的厂商参考、借鉴,HarmonyOS却并不能以此建立足够宽广的「护城河」并以此培育出自己的生态。
商业运作
一款商业操作系统想要生存,最基本的条件有两个:
- 足够多的用户
- 可以平衡厂家、用户、开发者利益的政策。死于这个因素的操作系统最著名的就是Windows Phone,一意孤行、反复横跳,导致微软错失了整个移动互联网时代。
在成功之前,也就只有华为和荣耀会搭载HarmonyOS。以两年换机周期为例,目前华为手机存量大约为4亿台,国内大概2.5亿台。在2020年9月15日之后,被禁止生产5nm Kirin芯片之后,华为终端产品缺货的状态持续存在,华为国内的市场份额估计也会快速萎缩。所以,达不到第一个条件。
在商业政策方面,华为整体的态度是开放的(老板的态度)。但到了执行层面,就变成了华为优先(余总的态度)。在第三方应用方面,一方面表示每一位开发者都是华为要汇聚的星星之火。另一方面执行起来,却是只和大厂合作。在2021年这个时间点,作为还有不到一个月就要发布的且宣称要开源的新系统,到现在为止还像宝贝一样藏起来、对非核心开发者像防贼一样,技术实现细节语焉不详,虚拟机云端运行,开发文档只有UI和分布式软总线两部分,其他部分依旧是在Android上的HMS SDK。
生态环境建设
在海外,GMS具有垄断地位,HMS+华为硬件暂时不具备与之竞争的能力。
在国内,由于Google服务在国内被禁,又由于GMS这个框架确实没有什么技术壁垒,又由于HMOV四家手机厂商除了华为独有芯片设计能力之外,在手机设计方面各家技术实力相差不大,所以各家都实现了一套类似GMS的框架:
- https://developer.huawei.com/consumer/cn/
- https://dev.mi.com/console/
- https://open.oppomobile.com/
- https://dev.vivo.com.cn/home?cid=w-2-baidu-sem-kfpt-qt
HMOV一个不落,全都提供类似的移动服务,如果你点开看一下,发现他们提供的服务内容也相差不大。所以在国内,HMS、MMS、OMS、VMS的市场份额就约等于它们手机的市场份额,所以腾讯系、阿里系接入HMS并不会给HMS提供什么额外竞争力,因为它们接入华为家的HMS,自然也会同时接入小米家的MMS、OPPO家的OMS、Vivo家的VMS。而且它们接入的基本上只有推送服务,像比较重要的账号体系、支付体系都会牢牢把握在自己手中,甚至即使是推送服务,它们为了保证自己的业务以及消息送达率,它们在接入官方推送服务后依旧在后台维护这自己独有的推送服务,那些应用互启动、推送服务后台耗电问题依旧没有解决。
Comments
comments powered by Disqus