0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HarmonyOS与OpenHarmony开发角度上的区别

OpenHarmony技术社区 来源:鸿蒙技术社区 作者:软通夏德旺 2021-09-28 09:31 次阅读

开篇第一句,所有学习与开发资料以官方资料为准。任何博客类只能作为参考,自行判断优良,不要被误导,包括本人的所有博客。

HarmonyOS 官方文档地址

应用开发:

https://developer.harmonyos.com/cn/documentation

设备开发:

https://device.harmonyos.com/

OpenHarmony 官方文档地址

如下:

https://gitee.com/openharmony/docs/

HarmonyOS 与 OpenHarmony 的区别

关于 HarmonyOS 与 OpenHarmony 的区别我这里不再过多阐述,请看开放原子基金会的官方介绍。

我这里着重从开发角度上讲解它们的区别:

①开发语言支持

HarmonyOS 主要支持 Java 和 JS 来开发应用(当然还有 C 和 C++),而 OpenHarmony 不支持 Java 来开发应用。

目前阶段 HarmonyOS 里面还是有部分功能是基于 AOSP 的,因此还是要用 Java,而 OpenHarmony 不再使用 Java,应该是想彻底放弃 AOSP 了。

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/配置OpenHarmony-SDK.md

③创建项目方式不同

在 DevEco 2.2 Beat1 版本之后,可以直接支持创建 OpenHarmony 应用项目了。

创建方式如下图:

这里重点对 standard 解释下,即 OpenHarmony 官方说的“标准系统”,本文中所说的所有 OpenHarmony 应用开发都是针对的标准系统。

轻量和小型系统(参考内存《128MB),标准系统(参考内存≥128MB),详细说明请看官方文档:

https://gitee.com/openharmony/docs/blob/master/zh-cn/readme.md

⑤运行调测方式不同

HarmonyOS 支持 previewer 预览、模拟器运行、真机运行三种方式;OpenHarmony 支持 previewer 预览、真机(目前主要使用 3516 系列开发板)运行。

首先,目前 OpenHarmony 是没有模拟器的,真正运行调测只能借助开发板(主要采用 HI3516 系列开发板),注意目前是不支持手机平板等真机调测的。

⑥签名方式不同

OpenHarmony 的签名方式我这里就不赘述,直接附上官方文档链接:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/配置OpenHarmony应用签名信息.md

HarmonyOS 的签名我最想吐槽的就是需要添加设备 ID。OpenHarmony 的签名我只想吐槽一句,既然 open 为何还必须要签名。

埋坑

上面的区别对比已经埋了部分坑了,下面再针对纯粹上层应用开发人员初次接触 OpenHarmony 开发的坑。

①OpenHarmony 操作系统编译

为何要编译操作系统,如果你手上有现成的安装好操作系统的开发板你,操作系统和 sdk 版本也对应。

比如我们是基于 OpenHarmony-SDK-2.0-Canary 版本,那你应该烧录一个对应的操作系统版本。比如我手上是很久之前的一个 1.0 版本的 3516 开发板,显然要升级。

操作系统编译的完整资料依然请参考官网:

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-standard.md

关于这里我强调几点:

(1)使用 repo 进行代码仓同步时,官方描述的操作命令如下:

repo sync -c

建议替换成:

repo sync -c -j8

这个后面的数字 8 根据自己的 cpu 核数进行设置,查看 cpu 核数的命令如下:

grep -c ‘processor’ /proc/cpuinfo

35833592-1fc2-11ec-82a8-dac502259ad0.png

这样配置之后,会大大加快你的同步速度,否则这个同步时间会非常漫长。

同步过程请使用无限制的公网网络,比如某些公司访问外网会有限制。然后就是网络下载速度也会会直接关系到你的同步速度。

repo 中途同步失败了(比如断网或者异常关机),也不要过于紧张,可以根据 log 提示删除某些同步异常的部分仓库,然后继续执行上面的同步命令即可。

(2)编译环境安装时,Linux 编译服务器终端输入不识别的命令时,提示“ImportError: No module named apt_pkg”。

解决办法:执行如下命令重新安装 python3-apt。

sudo apt-get remove python3-apt

sudo apt-get install python3-apt

(3)编译构建时,我这里遇到一个大坑,就是电脑突然断电了,然后再执行编译的时候报大量错误,错误内容如下:

rm: cannot remove ‘XXXXX‘: Bad message

这种问题本来可以采用 fsck 的方式来修复文件系统,但是由于编译过程中产生了大量的很小的临时文件,所以修复起来太慢太不现实,干脆删除了虚拟机重新加载之前保存的虚拟机镜像,重新再来一次。

②操作系统烧录

官方描述的是使用网口进行烧录,官网地址如下:

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-standard-burn.md

需要注意的点:本文档针对的开发版是官方推荐AI_Camera_Hi3516DV300 开发套件。

(1)确保 USB 转串口驱动能安装上,即在 PC 的设备管理器上能识别到 COM 口。

首先安装 USB-to-Serial Comm Port.exe 驱动,如果没有识别请再安装 CH341SER 驱动。

(2)网口烧录注意事项:不支持无线,需要使用网线直连 PC,网卡是千兆网卡,最好选择六类网线,这样速度更快。

PC 端需要设置 ip 地址为 192.168.1.2/24,网关为 192.168.1.1,如下图:

烧录工具上网口的设置:

upload_net_server_ip:对应 PC 上网口设置的地址。

upload_net_client_mask:设置开发板的子网掩码,对应 PC 上设置的子网掩码,确保开发板和 PC 在一个网段。

upload_net_client_gw:和 PC 上设置的网关保持一致。

upload_net_client_ip:设置开发板的 IP 地址,例如 192.168.1.3,确保和 PC 在一个网段即可。

我没有使用官方推荐的 DevEco Device Tool 进行烧录,而是使用了我喜欢的 HiBurn 进行烧录,但是基本配置相同,截图如下:

点完烧写按钮之后,需要先下电再上电,上电之后就会自动进行烧写了。网口烧录时间比较慢,标准系统 2.2beta 版本烧录估计要 20 分钟。

(3)USB 烧录(强烈推荐,最快的方式,一分钟即可烧写完毕),这种方式是我在配置过程中最卡我的一种方式。主要就是 USB 的驱动一直无法识别。

首先我们来看看正确识别驱动之后,设备管理器中的页面,必须看到通用串行设备下识别了设备才行,如下图:

(1)开发套件上面有两个 typec 接口,屁股后面的那个才是 USB 口,前面的仅仅是供电口。

(2)安装 HiUSBBurnDriver 驱动程序。

(3)Win10 操作系统需要修改注册表。

a.创建一个“文本文档.TXT”,文件后缀名修改为 .reg,如 usb.reg。

b.右键打开创建的 usb.reg,将如下脚本拷贝到该文件中,然后保存并关闭。

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlusbflags12D1D0010100]“SkipBOSDescriptorQuery”=hex:01,00,00,00“osvc”=hex:00,00“IgnoreHWSerNum”=hex:01

c.双击执行 usb.reg 文件,自动修改注册表文件信息。

(4)我 PC 依然迟迟无法识别 USB 驱动的时候,我在系统的 boot 里面(串口终端连接下,进入 uboot 之前,狂按回车进入 boot)输入以下命令终于解决了无法识别驱动的问题。

usb device

(5)待识别了 USB 驱动之后烧录需要注意的问题。

设置好烧录镜像之后,在下电在上电之前,请一直按住开发板上面的 update 按钮(在开发板的串口旁边),上电之后,待出现开始烧写的打印之后再松开按钮。

③OpenHarmony 安装应用到开发板

此处依然贴出对应的官方文档:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/安装运行OpenHarmony应用.md

这里使用的是 hdc_std.exe,而不是 HarmonyOS sdk 中的 hdc.exe。

hdc_std.exe 在哪里?它在 OpenHarmony sdk 的 toolchains 目录下面,确保它和开发板上的版本一致,即确保 sdk 版本和开发板的操作系统版本匹配即可。

④自己编译 OpenHarmony SDK

为了确保 sdk 和自己烧写的操作系统版本一致,我们可以自己编译 sdk。

编译命令如下:

。/build.sh --product-name ohos-sdk --ccache

结果输出:

out/ohos-arm64-release/packages/ohos-sdk/

耗时了好久终于写完了,希望本文加上配上 OpenHarmony 官方的文档能够帮助更多的开发者快速投入 OpenHarmony 共建中。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6822

    浏览量

    123331
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2634

    浏览量

    66341
  • HarmonyOS
    +关注

    关注

    79

    文章

    1975

    浏览量

    30179
  • OpenHarmony
    +关注

    关注

    25

    文章

    3722

    浏览量

    16311

原文标题:HarmonyOS与OpenHarmony,区别很大!

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    全新原生鸿蒙HarmonyOS NEXT发布,书写国产操作系统新篇章!同时,触觉智能发布OpenHarmony5.0固件

    10月22日,华为举行“原生鸿蒙之夜暨华为全场景新品发布会”,正式为用户带来基于OpenHarmony打造的全新原生鸿蒙操作系统HarmonyOS NEXT和华为多个全场景智能设备新品。与此同时,触觉智能旗下鸿蒙开发板Purpl
    的头像 发表于 10-28 13:46 543次阅读
    全新原生鸿蒙<b class='flag-5'>HarmonyOS</b> NEXT发布,书写国产操作系统新篇章!同时,触觉智能发布<b class='flag-5'>OpenHarmony</b>5.0固件

    基于ArkTS语言的OpenHarmony APP应用开发:HelloOpenharmony

    1、程序简介该程序是基于OpenHarmony标准系统编写的UI应用类:HelloOpenHarmony。本案例是基于API9接口开发。本案例已在OpenHarmony凌蒙派-RK35
    的头像 发表于 09-15 08:09 385次阅读
    基于ArkTS语言的<b class='flag-5'>OpenHarmony</b> APP应用<b class='flag-5'>开发</b>:Hello<b class='flag-5'>Openharmony</b>

    【迅为RK3568开发板】OpenHarmony学习开发系列教程(第1期 北向基础篇一)

    P5P4_OpenHarmony支持设备类型3:47 P6p5_南向开发和北向开发区别1:49 P7P6_OpenHarmony应用
    发表于 08-16 15:27

    鸿蒙OpenHarmony南向/北向快速开发教程-迅为RK3568开发

    P2_OpenHarmony功能框架 P3_OpenHarmony技术特性 P4_OpenHarmony支持设备类型 p5_南向开发和北向开发
    发表于 07-23 10:44

    SwanLinkOS首批实现与HarmonyOS NEXT互联互通,软通动力子公司鸿湖万联助力鸿蒙生态统一互联

    在刚刚落下帷幕的华为开发者大会2024上,伴随全场景智能操作系统HarmonyOSNext的盛大发布,作为基于OpenHarmony的同根同源系统生态,软通动力子公司鸿湖万联全域智能操作系统
    的头像 发表于 07-02 09:57 511次阅读
    SwanLinkOS首批实现与<b class='flag-5'>HarmonyOS</b> NEXT互联互通,软通动力子公司鸿湖万联助力鸿蒙生态统一互联

    HarmonyOS开发案例:【购物车app】

    OpenHarmony ArkUI框架提供了丰富的动画组件和接口,开发者可以根据实际场景和开发需求,选用丰富的动画组件和接口来实现不同的动画效果。
    的头像 发表于 05-14 18:19 1065次阅读
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>开发</b>案例:【购物车app】

    HarmonyOS开发:【基于命令行(开发环境)】

    在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段,大部分的
    的头像 发表于 04-25 17:54 1258次阅读
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>开发</b>:【基于命令行(<b class='flag-5'>开发</b>环境)】

    鸿蒙开发实例:【配置OpenHarmony SDK】

    在设置OpenHarmony应用开发环境时,需要开发者在DevEco Studio中配置对应的SDK信息。
    的头像 发表于 04-22 15:24 1982次阅读
    鸿蒙<b class='flag-5'>开发</b>实例:【配置<b class='flag-5'>OpenHarmony</b> SDK】

    OpenHarmony南向开发案例:【智能油烟机】

    基于Hi3516开发板,使用开源OpenHarmony开发的应用。
    的头像 发表于 04-18 15:54 1057次阅读
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>开发</b>案例:【智能油烟机】

    OpenHarmony南向开发实例:【游戏手柄】

    基于TS扩展的声明式开发范式编程语言,以及OpenHarmony的分布式能力实现的一个手柄游戏。
    的头像 发表于 04-17 10:21 753次阅读
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>开发</b>实例:【游戏手柄】

    OpenHarmony南向开发案例:【分布式画板】

    使用OpenHarmony3.1-Release开发的应用。通过OpenHarmony的分布式技术,使多人能够一起画画。
    的头像 发表于 04-12 14:40 1038次阅读
    <b class='flag-5'>OpenHarmony</b>南向<b class='flag-5'>开发</b>案例:【分布式画板】

    【七】Purple Pi OH开发板带你7天入门OpenHarmony

    OpenHarmonyOS。一.PurplePiOH开发板的使用体验1.1USB首先,让我们谈谈PurplePiOH开发板。作为一款与树莓派兼容的开发板,它具有高算力、低功耗、强大的多
    的头像 发表于 03-22 08:31 415次阅读
    【七】Purple Pi OH<b class='flag-5'>开发</b>板带你7天入门<b class='flag-5'>OpenHarmony</b>!

    【工作准备】OpenHarmony鸿蒙操作系统开发——基础必备软件

    、去问。 软件列表如下: 一、OpenHarmony 内核及子系统开发软件列表 1. DevEco Studio 【作用】HarmonyOS 应用集成开发环境,
    的头像 发表于 02-23 15:51 1841次阅读
    【工作准备】<b class='flag-5'>OpenHarmony</b>鸿蒙操作系统<b class='flag-5'>开发</b>——基础必备软件

    鸿蒙next开发-OpenHarmony的NDK开发

    Native API是OpenHarmony SDK上提供的一组native开发接口与工具集合(也称为NDK),方便开发者使用C或者C++语言实现应用的关键功能。
    的头像 发表于 01-20 11:35 1801次阅读
    鸿蒙next<b class='flag-5'>开发</b>-<b class='flag-5'>OpenHarmony</b>的NDK<b class='flag-5'>开发</b>

    harmonyos和安卓的区别

    HarmonyOS是由华为开发的一款全场景分布式操作系统,而安卓(Android)则是由谷歌开发的移动操作系统。虽然两者都是操作系统,但它们在很多方面存在明显的区别。下面是关于
    的头像 发表于 01-10 17:55 3539次阅读