• OpenHarmony、HarmonyOS、HarmonyNext互相兼容吗?


    1,三者之间的关系

    • OpenHarmony:开源底层。
    • HarmonyOS:闭源手机系统,兼容安卓生态。
    • HarmonyOS NEXT:纯血鸿蒙,不兼容安卓。

    上一篇文章简单介绍过,就不再多说了,这里说一下HarmonyOS NEXT(闭源)。

    2023年8月4日,华为推出HarmonyOS NEXT开发者预览版 。2024年1月18日,HarmonyOS NEXT星河版正式面向开发者开放申请。2024年10月22日,“原生鸿蒙之夜暨华为全场景新品发布会”上,华为正式为用户带来全新的原生鸿蒙操作系统(HarmonyOS NEXT),这是HarmonyOS诞生以来最大的升级,以原生精致、原生互联、原生智能、原生安全、原生流畅等五大高品质体验,开启鸿蒙新世界。

    HarmonyOS NEXT Release

    软件包

    发布类型

    版本号

    Build Version

    发布时间

    系统ReleaseHarmonyOS NEXT ReleaseNEXT.0.0.722024/10/18
    NEXT.0.0.712024/10/08
    DevEco StudioReleaseDevEco Studio NEXT Release5.0.3.9002024/10/08
    SDKReleaseHarmonyOS NEXT Release SDK基于OpenHarmony SDK Ohos_sdk_public 5.0.0.71 (API 12 Release)2024/10/08

    2,三者之间应用互相兼容吗?

    2.1 harmonyOS和openHarmony

    harmonyOS可以看作openHarmony的经过bug修改一部分后出的一个正式版本,如OpenHarmony-conpileSdkVersion10对应HarmonyOS-compileSdkVersion9。因此要想hap包兼容,则要避免调用版本API不一样的接口。

    DevEcoStudio新建工程后,在entry模块的build-profile.json5配置如下:

    1. {
    2. "apiType": 'stageMode',
    3. "buildOption": {
    4. },
    5. "targets": [
    6. {
    7. "name": "default",
    8. "runtimeOS": "HarmonyOS"
    9. },
    10. {
    11. "name": "ohosTest",
    12. }
    13. ]
    14. }

    runtimeOS选择HarmonyOS,启动模拟器,毫无疑问在harmonyOS版本的模拟器手机上可以正确运行。连接真机,devEcoStudio识别后,自动签名,也可以安装到真机harmonyOS的手机上。

    此时,不改变这个runtimeOS,直接运行到openHarmony的板卡上,发现也可以正确运行。证明devEcoStuio生成的hap在不涉及跨版本api调用的情况下可以通过编译器安装hap。

    但是,从真机上pull-app下来,无法通过hdc安装到openHarmony的板卡上,提示:

    [Fail]Not any installation package was found

    官方回答:

    由于系统安全升级,当前仅有以下三种方式将应用安装至设备中:

    • 预置应用:通过相关流程将应用预置到设备中,设备初始化时会自动安装相关应用;
    • 开发工具安装:当应用处于开发调试阶段时,允许开发者使用HDC工具将应用安装至相应的工程机中;
    • 应用市场安装:最终面向用户提供的应用安装方式,通过应用市场下载相应应用;

    并且,devEcoStudio-build app以后,也无法直接安装到真机上。官方回答:

    不支持通过hdc命令直接安装app包,可使用开放式测试或者邀请测试对未上架的应用进行内部测试。
    参考文档:文档中心

    所以这里,不知道该怎么解答此现象。可以说它为了兼容Android的apk所做的修改,也可以说是安全审查很严格吧。

    2.2 harmonyNEXT和openHarmony

    为何选择它们对比,主要是它 powered by openHarmony ,跟harmonyOS就不对比了,因为已经说了剔除了AOSP,所以很多应用是不兼容的。

    HarmonyOS NEXT作为一款全场景智能操作系统,基于OpenHarmony打造,却有一些独特的特性。并且HarmonyOS NEXT现有的应用无法直接在OpenHarmony设备上运行。主要有几个原因:

    首先,应用架构和编译的差异是导致这一现象的重要原因之一。

    HarmonyOS NEXT 拥有其独具特色的应用架构和开发模式。其应用程序包(hap)被分为 entry 和 feature 两种类型。

    entry 作为应用的主模块,就如同大门一样,为用户提供基础功能,是进入应用世界的入口;而 feature 则像是应用的动态插件,能够根据用户的需求和设备类型进行选择性安装,为用户带来更加个性化和灵活的体验。

    这种精心设计的架构,旨在满足 HarmonyOS NEXT 系统对于多样化功能和复杂场景的特定需求。
    相比之下,OpenHarmony 则是一个开源的操作系统项目,它的架构侧重点在于为各类不同的设备和场景提供基础的操作系统能力。

    虽然它与 HarmonyOS NEXT 有着一定的同源关系,但在具体的实现方式和对应用的支持上,却有着明显的独立特性。

    比如说,OpenHarmony 在设备适配和系统定制方面展现出了高度的灵活性,能够适应各种不同类型的硬件设备和使用场景。但也正因如此,对于 HarmonyOS NEXT 上那些特定的应用架构和复杂功能,它可能无法直接给予有力的支持。

    除此之外,HarmonyOS NEXT 和 OpenHarmony 对应用的编译方式不同,在编译过程中,即使是相同的代码,在这两个系统中的编译结果也可能大相径庭。这种差异直接影响了应用的正常运行,使得 HarmonyOS NEXT 的应用在 OpenHarmony 设备上难以施展拳脚。

    其次,系统 API 和功能支持的差异也不容忽视。

    在 API 层面上,HarmonyOS NEXT 和 OpenHarmony 既有相似之处,又存在显著的差异。

    HarmonyOS NEXT 作为面向消费者的智能终端操作系统,其 API 侧重于提供丰富多样、令人惊艳的用户体验和智能功能。比如,它拥有更强大的分布式能力,能够实现设备之间的无缝协同工作;还有智能交互功能,让用户与设备的互动更加自然和便捷。

    而 OpenHarmony 的 API 则更注重基础的系统功能和设备的适配性。它就像是一座坚固的基石,为各种设备提供稳定可靠的操作系统基础,但对于一些高级的、面向用户体验的功能,可能支持得相对有限。

    此外,在功能支持方面,HarmonyOS NEXT 也进行了针对特定设备或场景的优化和定制。例如,在手机、平板等智能终端上,HarmonyOS NEXT 可能投入了更多的资源进行性能优化和功能创新,以满足用户对于高效处理和丰富应用的需求。然而,OpenHarmony 设备可能更多地侧重于物联网设备等其他特定场景,其功能重点和优化方向与 HarmonyOS NEXT 存在差异。这就导致了一些在 HarmonyOS NEXT 上运行良好的功能,在 OpenHarmony 设备上无法实现或者不能完全发挥作用。

    再者,安全和权限管理的差异也是造成应用无法直接运行的重要原因。

    无论是 HarmonyOS NEXT 还是 OpenHarmony,都将系统安全视为重中之重。但它们在安全机制的具体实现方式上各有千秋。

    HarmonyOS NEXT 为了保障用户的信息安全和系统的稳定运行,可能设置了更为严格的应用审核和安全检测机制。每一个应用都要经过层层筛选和检验,确保没有任何潜在的安全隐患,就像给用户的信息和系统穿上了一层坚固的铠甲。而 OpenHarmony 作为一个开源项目,其安全机制在一定程度上需要开发者和使用者根据具体的需求进行进一步的定制和强化。这就要求开发者在使用 OpenHarmony 时,要更加注重安全方面的设计和实现。

    在权限管理方面,两个系统也有着不同的策略和要求。HarmonyOS NEXT 对于应用的权限管理如同一位细致入微的管家,严格控制应用只能访问其所需的权限,最大程度地保护用户的隐私和数据安全。相比之下,OpenHarmony 的权限管理可能相对较为宽松,这就需要开发者在应用开发过程中更加谨慎地处理权限问题,确保用户的权益得到充分保障。

    最后,对于大家关心的是否能够从 HarmonyOS NEXT 的应用商店获取 hap 包的问题,目前还没有明确的官方途径供普通用户直接获取。即使有办法获取到 hap 包,由于上述种种系统差异的存在,估计也无法直接在 API Level 一致的 OpenHarmony 设备上顺利部署并运行。

  • 相关阅读:
    HTTP代理出现错误是什么原因?如何解决?
    PPLiteSeg实时语义分割预测结果输出控制无人车转向角度方向实现沿车道无人驾驶
    新零售电商O2O模式解析
    【Python_PySide2学习笔记(十七)】QPlainTextEdit末尾增加文本时设置文本颜色
    [附源码]JAVA毕业设计课程在线反馈系统(系统+LW)
    LM06丨仅用成交量构造抄底摸顶策略的奥秘
    Vue学习笔记(一)
    Thinkphp使用composer安装扩展包教程
    代码随想录刷题记录 6 - 二叉树(1)
    微信小程序 画布canvas
  • 原文地址:https://blog.csdn.net/Jason_Lee155/article/details/143210097