HarmonyOS和OpenHarmony的区别

1.概要

  众所周知,鸿蒙是华为开发的一款分布式操作系统。因为开发系统,最重要的是集思广益,大家共同维护。为了在IOS和Android之间生存,鸿蒙的茁壮成长一定是需要开源,各方助力才能实现。
  在这种思想上,华为的鸿蒙将HarmonyOS的基础功能提取出来,创建了OpenHarmony版本开源,交付给开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目。华为鸿蒙虽然和安卓同为 Linux基础上开发的,但是他们的设计理念和框架不同,鸿蒙使用的是微内核,安卓则是宏内核,微内核相比宏内核更加安全。
  一般而言,OpenHarmony开源鸿蒙与HarmonyOS商业鸿蒙这两者关系是相辅相成的,但是HarmonyOS作为亲儿子,能力上还是比OpenHarmony强太多。
  简单的举个例子,假设小米也成为了鸿蒙开源系统的开发贡献者,或者小米也开发了一个基于鸿蒙开源系统的类似于MIUI的手机操作系统,那么小米的地位和华为就是完全平等的。小米这个操作系统,也就和华为手机搭载的HarmonyOS 完全平等。

2.区别

  HarmonyOS商业鸿蒙是有三种UI框架开发,Java、JS、eTS,HarmonyOS 4.0后Java已被废弃,eTS成了主推语言。而OpenHarmony只能通过JS和eTS开发,不能使用Java进行开发。
  因为底层SDK的不同,所以他们的调用API也是不同的,所以可以把他们两个区别看做两个东西。
  OpenHarmony是华为贡献的HarmonyOS的基础能力,也就是说,HarmonyOS并不是全部贡献了的,只贡献了基础部分而已;HarmonyOS是在OpenHarmony基础上开发的商业系统,也就是说,OpenHarmony是免费的,大家可以在此基础上开发自己的东西,但HarmonyOS是商业的,就不一定免费了;
  在调试方面,除了模拟器无法使用,其他都是一样的,可以预览previewer,使用真机,不过搭载OpenHarmony系统的机器很少,一般都是用开发板,或者去刷系统。还有就是签名方式的不同,不过openharmony一般都可以通过自动签名设置来run项目。

2.1.OpenHarmony

  OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
  从Open就可以看出,他是一个开源项目,是由华为雇了一帮人,然后由这些人commit代码,  最后华为把 HarmonyOS 中基础功能提取出来,打包成功一个项目叫做“Openharmony” ,把 Openharmony 捐献给了原子开源基金会。
  OpenHarmony是由开放原子开源基金会孵化及运营的,未来华为也将持续为OpenHarmony开源项目贡献代码。
  OpenHarmony相当于Android的AOSP(Android Open Source Project)。

2.2.HarmonyOS

  HarmonyOS作为新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言,带来简洁、流畅、连续、安全可靠的全场景交互体验
  (1)HarmonyOS 是华为基于开源项目OpenHarmony 开发的面向多种全场景智能设备的商用版本。
  (2)为保护华为现有手机和平板用户的数字资产,在遵循AOSP的开源许可的基础上HarmonyOS 实现了现有Android生态应用在部分搭载该系统设备上的运行。
  (3)HarmonyOS NEXT将不再兼容android应用。

3.开发学习网址

OpenHarmony官网
HarmonyOS官网
GItee上的OpenHarmony源码,API,DEMO相关资料
GItee上的OpenHarmony-TPC源码
GItee上的HarmonyOS-TPC源码
HarmonyOS官方学堂
HarmonyOS 在线文档
鸿蒙社区
HarmonyOS开发者
软通动力HarmonyOS学院
W3C School
DevEco Studio下载地址
DevEco Studio for HarmonyOS 下载地址
DevEco Studio for OpenHarmony下载地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/241539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32实现三个小灯亮

led.c #include"led.h"void Led_Init(void) {GPIO_InitTypeDef GPIO_VALUE; //???RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//???GPIO_VALUE.GPIO_ModeGPIO_Mode_Out_PP;//???? ????GPIO_VALUE.GPIO_PinGPIO_Pin_1|GPIO_Pin_2|GPIO_P…

登录shell与非登录shell、交互式与非交互式shell的知识点详细总结

一、登录shell与非登录shell 1.登录shell定义:指的是当用户登录系统时所取的那个shell,登录shell属于交互式shell。 登陆shell通常指的是:用户通过输入用户名/密码(或证书认证)后启动的shell.例如: 当时…

【docker笔记】docker常用命令

1、帮助启动类命令 1.1 启动、重启、查询当前状态、停止 systemctl start docker systemctl stop docker systemctl restart docker systemctl status docker1.2 设置开机启动 systemctl enable docker1.3 查看docker概要信息 docker info1.4 查看docker帮助文档 docker -…

python的故事

当Python这门编程语言诞生于上世纪90年代末的时候,很少有人能够预见到它将成为如今广受欢迎的一门语言。然而,正是由于其简洁、易读、强大的特性,以及活跃的开发社区,Python逐渐崭露头角,取得了长足的发展。 故事的开…

spring-validation实现分组校验

文章目录 前言实际开发可能会使用到分组校验maven添加依赖简单使用高级应用分组自定义分组组合分组 源码地址 前言 JSR 303中提出了Bean Validation,表示JavaBean的校验,Hibernate Validation是其具体实现,并对其进行了一些扩展,…

GO语言基础笔记(一):基本语法与数据类型

基本语法 变量声明: 使用 var 关键字,如 var x int 声明一个整型变量 x。简短声明方式,如 y : 0 直接初始化 y。 函数定义: 使用 func 关键字定义函数,如 func add(a int, b int) int { return a b }。 控制结构&…

Arduino上U8g2库显示中文的经历

u8g2自带很多中文库&#xff1b;但是向u8g2_font_wqy12_t_chinese3 比较全的应该是u8g2_font_wqy12_t_gb2312 这个&#xff0c;只是我还没有调用成功 这个库&#xff0c;中文就显示不全&#xff1b;有些没有定义&#xff0c;如百家姓 #include <Arduino.h> #include <…

Java经典框架之Spring

Java经典框架之Spring Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. Spring简介 2.…

HA启动Advanced SSH Web Terminal 提示附加组件似乎尚未准备就绪,它可能仍在启动。是否要再试一次?

环境&#xff1a; Home Assistant OS11.1 Advanced SSH & Web Terminal 17.0 问题描述&#xff1a; HA安装好SSH加载项&#xff0c;启动Advanced SSH & Web Terminal 提示附加组件似乎尚未准备就绪&#xff0c;它可能仍在启动。是否要再试一次&#xff1f; 解决方案…

设计模式之-策略模式,快速掌握策略模式,通俗易懂的讲解策略模式以及它的使用场景

系列文章目录 设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列 设计模式之-单列设计模式&#xff0c;5种单例设计模式使用场景以及它们的优缺点 设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式&#xff0c;每一种模式的概念、使用…

.NET中的Swagger使用

目录 前言 一、Swagger是什么&#xff1f; 二、如何Swagger文档说明的信息 1.在AddSwaggerGen方法中写入文档信息 2.运行效果 二、文档UI界面标题、路由设置 1.在中间件UseSwaggerUI方法中配置 三、文档UI界面添加接口注释 1.在 .csproj中配置 2.在AddSwaggerGen方法中配置Incl…

Apache Spark简介与历史发展

在当今信息爆炸的时代&#xff0c;大数据处理已成为了现实。企业和组织需要处理海量数据来获得有用的信息和见解。Apache Spark作为一个开源的大数据处理框架&#xff0c;已经在大数据领域占据了重要地位。 Apache Spark简介 Apache Spark是一个用于大规模数据处理的快速、通…

【zookeeper特点】

文章目录 1. Zookeeper介绍2、ZooKeeper数据结构 1. Zookeeper介绍 ZooKeeper 是一个开源的分布式协调框架&#xff0c;是Apache Hadoop 的一个子项目&#xff0c;主要用来解决分 布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性 …

java8 reduce操作

什么是 reduce 操作 reduce 操作是一种通用的归约操作&#xff0c;它可以从一个元素序列中生成一个单一的结果&#xff0c;通过反复将一个组合操作应用到序列中的元素上。例如&#xff0c;我们可以使用 reduce 操作来计算一个整数序列的和&#xff0c;或者将一个字符串序列拼接…

EventSource和WebSocket

eventSource&#xff08;事件源&#xff09;和WebSocket都是用于实现服务器与客户端之间的实时通信的技术&#xff0c;但它们在一些方面有所不同。 eventSource eventSource是HTML5中的一种技术&#xff0c;它允许服务器向客户端发送单向的、持久的、自动的消息。它基于HTTP协…

新版IDEA中Git的使用(一)

说明&#xff1a;本文介绍如何在新版IDEA中使用Git 创建项目 首先&#xff0c;在GitLab里面创建一个项目&#xff08;git_demo&#xff09;&#xff0c;克隆到桌面上。 然后在IDEA中创建一个项目&#xff0c;项目路径放在这个Git文件夹里面。 Git界面 当前分支&Commit …

GO语言基础笔记(五):包的介绍

在Go语言中&#xff0c;包&#xff08;package&#xff09;是代码组织和重用的基本单位。Go的标准库中包含了许多实用的包&#xff0c;它们提供了从基础数据处理到复杂网络编程等各种功能。下面是一些常用的Go标准库包及其作用的介绍&#xff1a; 目录 1. fmt 2. net/http …

Qt/QML编程学习之心得:在QML中调用fileDialog(十六)

Qt中有一些内置的对话框dialog,比如 在QWidget工程中使用比较容易,比如 #include <QFileDialog>fileName = QFileDialog::getOpenFileName(this, tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")); 那么在QM…

使用eclipse创建一个java文件并运行

启动 Eclipse 并创建一个新的 Java 项目: 打开 Eclipse。 选择 “File” > “New” > “Java Project”&#xff08;文件 > 新建 > Java 项目&#xff09;。 在弹出的窗口中&#xff0c;为你的项目命名&#xff0c;比如 MyJavaProject。 点击 “Finish”&#xff…

word2003 open word2007+

Win 7 C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates 还是不行&#xff0c;重装office2003吧&#xff0c;再安装转换插件&#xff0c;但是再高版本好像没转换工具