OpenHarmony和HarmonyOS有什么区别?这篇文章讲清楚了
OpenHarmony和HarmonyOS有什么区别?
作者:坚果
公众号:“大前端之旅”
华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。
OpenHarmony和HarmonyOS有什么区别?
OpenHarmony
OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展
-
从Open就可以看出,他是一个开源项目,是由华为雇了一帮人,然后由这些人commit代码,最后华为把 HarmonyOS 中基础功能提取出来,打包成功一个项目叫做“Openharmony” ,把 Openharmony 捐献给了原子开源基金会。
-
OpenHarmony是由开放原子开源基金会孵化及运营的,未来华为也将持续为OpenHarmony开源项目贡献代码
-
OpenHarmony相当于Android的AOSP(Android Open Source Project)
-
所以使用者只要遵循开源协议和法律就可以
HarmonyOS
HarmonyOS作为新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言,带来简洁、流畅、连续、安全可靠的全场景交互体验
-
HarmonyOS 2是华为基于开源项目OpenHarmony 2.0开发的面向多种全场景智能设备的商用版本
-
为保护华为现有手机和平板用户的数字资产,在遵循AOSP的开源许可的基础上HarmonyOS 2实现了现有Android生态应用在部分搭载该系统设备上的运行
开发角度上讲解它们的区别:
1.语言支持
HarmonyOS 主要支持 Java 和 JS ,TS来,以及仓颉开发应用(当然还有 C和 C++),而 OpenHarmony 不支持 Java 来开发应用。
2.SDK 的不同
应用开发工具都是统一使用华为的 DevEco Studio,但是使用的 sdk 不同,开发前首先要切换 sdk 配置。
虽然 HarmonyOS 和 OpenHarmony 都可以用 js 来开发应用,但是它们的 api 还是有些细微的区别。
OpenHarmony 的 api 参考请参看 OpenHarmony 的官方文档,千万别看错了。
然后 OpenHarmony 的 sdk 请下载官方的支持 OpenHarmony 开发的 sdk,而不是 DevEco studio 自带的 HarmonyOS sdk。
关于 OpenHarmony sdk 配置请参考官方文档,我这里仅仅附上官方链接:
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/
3.运行调测方式不同
HarmonyOS 支持 previewer 预览、模拟器运行、真机运行三种方式;OpenHarmony 支持 previewer 预览、真机(目前主要使用 3516 系列开发板)运行。
首先,目前 OpenHarmony 是没有模拟器的,真正运行调测只能借助开发板(主要采用 HI3516 系列开发板),注意目前是不支持手机平板等真机调测的。
4.签名方式不同
OpenHarmony 的签名方式我这里就不赘述,直接附上官方文档链接:
https://gitee.com/openharmony/docs/tree/master/zh-cn/application-dev/quick-start
HarmonyOS 的签名我最想吐槽的就是需要添加设备 ID。
使用真机进行调试-调试HarmonyOS应用/服务-应用/服务调试-HUAWEI DevEco Studio使用指南-工具-HarmonyOS应用开发
OpenHarmony 的签名我只想吐槽一句,既然 open 为何还必须要签名。
5、创建项目方式不同
6、工程目录结构不同
OpenHarmony 只有js目录,没有java目录
参考文档:
https://developer.huawei.com/consumer/cn/doc/distribution/service/overview-0000001193306834
https://gitee.com/openharmony
相关文章
- CSS中一个冒号和两个冒号有什么区别
- yum -y与 yum有什么区别
- 301跳转与URL转发有什么区别
- 【原创】调用 proc_lib:spawn/1 和 erlang:spawn/1 有什么区别
- 重新点亮shell————什么是shell[一]
- 什么是数据管理系统?数据管理系统关键特性有哪些?
- 【人工智能作业及答案】什么叫智能?什么叫人工智能?人工智能科学体系大致分哪几个层次?
- iOS程序,在main函数之前发生了什么
- 每一位数据科学家都应掌握的理论是什么?
- PHP面试题:mysql_fetch_row() 和mysql_fetch_array之间有什么区别?
- 常见Java面试题 在Queue中poll()和remove()有什么区别?
- 什么是 NIO? NIO 和 BIO、AIO 之间的区别是什么?NIO主要用来解决什么问题?
- 天使投资、VC 以及 PE 的区别是什么?
- HDU 4920(杭电多校训练#5 1010 题) Matrix multiplication(不知道该挂个什么帽子。。。)
- C#中控件的Click事件与MouseClick事件有什么区别?
- 学习Java开发可以做什么?到底值不值得学?
- “专科程序员” 与 “本科程序员“ 之间,到底有什么区别?
- 手机的ROM,RAM是各自存放什么?所谓“运行内存”和“机身内存”究竟有什么区别?
- 在java语言中int 和 Integer 有什么区别
- Jsp和Servlet有什么区别?