一文看懂HarmonyOS在Openharmony基础上做了什么
很多人会问HarmonyOS与OpenHarmony的关系是什么,最简单的回答是HarmonyOS是OpenHarmony的一个发行版。再稍微详细点会介绍它们的历史渊源:
华为将 HarmonyOS 的基础能力部分开源出来,捐赠给开放原子开源基金会,从而正式成立了 OpenHarmony 开源项目,这为 OpenHarmony 的发展奠定了基础,使得二者在技术上有了共同的源头。二者都基于分布式技术设计,支持跨设备的无缝连接,旨在构建一个统一的操作系统平台,以实现多设备协同工作,为用户提供更好的体验。
OpenHarmony 是完全开源的项目,由开放原子开源基金会托管,面向全球开发者和厂商,可应用于各种物联网设备及更多场景;而 HarmonyOS 是华为的商业版本,虽然部分源码开源,但主要用于华为自家设备和生态系统,应用场景更侧重于消费级智能设备。OpenHarmony 侧重于提供系统底座的基础功能和框架,为不同硬件设备的开发和应用程序的开发提供底层支持;HarmonyOS 则在 OpenHarmony 的基础上,进一步整合了华为的各种特色服务。
这里面提到HarmonyOS 在OpenHarmony基础上整合了华为的特色服务,具体哪些特色服务呢?本文讲从这个系统架构减少引入的特色服务,希望让你彻底明白HarmonyOS在OpenHarmony上面建设了哪些能力。
OpenHarmony架构介绍
下面是OpenHarmony官方给出的技术架构图:
可以看到有四层:内核层、系统服务层、框架层、应用层。
内核层除了有KAL外还有驱动子系统和HDF,HDF感觉可以理解为Android的Hal层,不同厂商的硬件实现各自的硬件驱动,但是对上层接口保持一致,HarmonyOS跑在华为硬件中,这一块HarmonyOS肯定是自己的。
框架层和系统服务层,HarmonyOS也提供了自己的能力,比如AI等,框架层为应用开发提供了C/C++/JS等多语言的用户程序框架和Ability框架,适用于JS语言的ArkUI框架,以及各种软硬件服务对外开放的多语言框架API。根据系统的组件化裁剪程度,在HarmonyOS与OpenHarmony中这块是一致的。
应用层HarmonyOS也提供了很多系统应用,比如AppGallery,提供应用商店等。
整个设计思想上,两者是保持高度一致的:硬件互助,资源共享、一次开发,多端部署、统一OS,弹性部署等,而且华为也对外承诺,OpenHarmony会与HarmonyOS互通。
HarmonyOS 特色能力
接下来我们具体聊聊HarmonyOS在OpenHarmony基础上提供了哪些能力。
最简单的方式,我们看看HarmonyOS官方中的应用服务:
这些都是华为提供的”特色“服务,是对接华为服务端,使用华为能力的。这里面包含:
- 华为账号服务
- 广告服务
- 日历服务
- 通话服务
- 云开发服务
- 联系人服务
- 游戏服务
- 运动健康服务
- 应用支付服务
- 实况窗服务
- 位置服务
- 地图服务
- 用户通知服务
- 华为支付服务
- PDF服务
- 文件预览服务
- 推送服务
- 融合场景服务
- 分享服务
- 应用市场服务
- 钱包服务
- 天气服务
这些都为为用户提供更加丰富和便捷的体验,使用了华为服务端提供的能力,是OpenHarmony不具有也不能拥有的,如果有另一个手机厂商基于OpenHarmony做手机,这些服务也是需要重新开发的。
除了这些,还有AI能力也是HarmonyOS独有的:
以意图框架为例,Intents Kit(意图框架服务)是HarmonyOS级的意图标准体系 ,意图连接了应用/元服务内的业务功能。
意图框架能帮开发者将应用/元服务内的业务功能,智能分发到各系统入口,这个过程即智慧分发。其中系统入口包括:小艺对话、小艺搜索、小艺建议等。
系统入口、意图框架、鸿蒙生态的关系如下:
利用HarmonyOS的大模型、多维设备感知等AI能力,准确且及时地获取到用户显性、潜在意图,从而实现个性化、多模态、精准的智慧分发。智慧分发提供了多种特性类别,当前已开放习惯推荐、事件推荐、技能调用-语音、本地搜索,后续会陆续开放其他特性类别
HarmonyOS、应用/元服务的交互中,意图运行方式分为意图调用和意图共享:
从图上看到,最终还是依赖华为云端能力,是HarmonyOS特色能力。
讲到这里,别人再问起HarmonyOS 与 OpenHarmony的区别时肯定能说出具体的好多点特色能力。
总结
本文介绍了HarmonyOS在OpenHarmony基础上提供的应用服务和AI服务,并且介绍了OpenHarmony架构等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。