目录
1. 背景
2.OpenHarmony
3.HarmonyOS
4.鸿蒙生态
5.OpenHarmony与HarmonyOS的技术上实现区别
1.语言支持
2.SDK 的不同
3.运行调测方式不同
4.对APK的兼容性不同
5.包含关系
6.调试命令
6.何时选择OpenHarmony或是HarmonyOS?
1. 背景
开篇就说“关于‘鸿蒙操作系统’,由于缺乏规范的表述和统一的口径,导致内部理解不一致、对外说法不一致,容易引起混淆,所以此篇是专门说一下OpenHarmony与HarmonyOS的区别的
2.OpenHarmony
OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,开放原子开源基金会由华为、阿里、腾讯、百度、浪潮、招商银行、360等十家互联网企业共同发起组建。目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展
-
从Open就可以看出,他是一个开源项目,是由华为雇了一帮人,然后由这些人commit代码,最后华为把 HarmonyOS 中基础功能提取出来,打包成功一个项目叫做“Openharmony” ,把 Openharmony 捐献给了原子开源基金会。
-
OpenHarmony是由开放原子开源基金会孵化及运营的,未来华为也将持续为OpenHarmony开源项目贡献代码
-
OpenHarmony相当于Android的AOSP(Android Open Source Project),但是不包含AOSP,所以OpenHarmony不支持apk安装
-
所以使用者只要遵循开源协议和法律就可以
3.HarmonyOS
HarmonyOS作为新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言,带来简洁、流畅、连续、安全可靠的全场景交互体验
-
HarmonyOS 是华为是基于 OpenHarmony、AOSP等开源项目开发的面向多种全场景智能设备的商用版本,所以HarmonyOS包含OpenHarmony,如果将OpenHarmony理解成地基,则HarmonyOS则是在这个地基基础上修建的精装房
-
为保护华为现有手机和平板用户的数字资产,在遵循AOSP的开源许可的基础上HarmonyOS 2实现了现有Android生态应用在部分搭载该系统设备上的运行,所有支持apk安装
- HarmonyOS其他的称呼有鸿蒙操作系统、鸿蒙OS
下图是HarmonyOS与OpenHarmony的关系图
4.鸿蒙生态
鸿蒙生态包括 OpenHarmony 和 HarmonyOS,当然还包括开发工具以周边的一些开发库。当我们在说“鸿蒙”的时候,也许就是指鸿蒙生态。
5.OpenHarmony与HarmonyOS的技术上实现区别
1.语言支持
早期HarmonyOS是支持java语言开发的,网上也可以看到早起资料HarmonyOS支持java开发,现在HarmonyOS与OpenHarmony一致,只支持ArkTs开发和js开发
2.SDK 的不同
应用开发工具都是统一使用华为的 DevEco Studio,但是使用的 sdk 不同,开发前首先要切换 sdk 配置。
虽然 HarmonyOS 和 OpenHarmony 都可以用ArkTs 和 js 来开发应用,但是它们的 api 还是有些细微的区别。
OpenHarmony 的 api 参考请参看 OpenHarmony 的官方文档,千万别看错了。
然后 OpenHarmony 的 sdk 请下载官方的支持 OpenHarmony 开发的 sdk,而不是 DevEco studio 自带的 HarmonyOS sdk。
如下图是HarmonyOS SDK与OpenHarmony SDK的位置,可以看出是两个sdk并且在不同位置的
3.运行调测方式不同
HarmonyOS 支持 previewer 预览、模拟器运行、真机运行三种方式;OpenHarmony 支持 previewer 预览、真机运行。
4.对APK的兼容性不同
HarmonyOS由于底层有基于AOSP,所以HarmonyOS是可以安装APK的,OpenHarmony则不能安装APK
5.包含关系
HarmonyOS是包含OpenHarmony的,底层是有基于OpenHarmony
6.调试命令
HarmonyOS使用的hdc命令调试,OpenHarmony使用的是hdc_std命令调试
6.何时选择OpenHarmony或是HarmonyOS?
如果你只是一个应用开发工程师,专注于华为终端设备的应用开发,那么选择HarmonyOS。
如果你对HarmonyOS底层的技术感兴趣,想了解或者想对HarmonyOS做贡献,那么选择OpenHarmony。当然,如果想更进一步,做一款属于自己的操作系统,基于OpenHarmony开源项目做二次开发也是不错的选择哦。