前言

随着鸿蒙生态日渐成熟,许多开发者希望能做到HOS和OHOS的互联互通。正好伴随着OpenHarmony 4.1-Release的发布,应用层面已经能够做到一套工程,双端运行的效果。

开发环境

系统版本:

  1. HarmonyOS: NEXT Developer Preview2
  2. OpenHarmony: 4.1-Release(OpenHarmony 4.1.7.3)

DevEco Studio版本:

  1. HarmonyOS: DevEco Studio NEXT Developer Preview1 (build: 4.1.3.500)
  2. OpenHarmony: DevEco Studio 4.1 Release(build: 4.1.0.400)

SDK版本:

  1. HarmonyOS: NEXT Developer Preview2
  2. OpenHarmony: 4.1.6.9

适配流程

纯净工程

OHOS应用工程适配HOS

步骤一

通过OHOS IDE创建标准OHOS应用工程。
关键参数配置如下:
根目录build-profile.json5

{
  "app": {
    "products": [
      {
        ···
        "compileSdkVersion": 11,
        "compatibleSdkVersion": 11,
        "runtimeOS": "OpenHarmony",
        ···
      }
    ],
  }
}

步骤二

签名配置时勾选Automatically generate signature

注意:Support HarmonyOS是否勾选都对安装运行暂无影响。但是勾选后会在根目录build-profile.json5签名部分新增一个配置

{
  "app": {
    "signingConfigs": [
      {
        ···
        "type": "HarmonyOS",
        ···
      }
    ]
  }
}

步骤三

将编译好的hap通过hdc install命令即可同时安装运行在HOS和OHOS设备上。

img

HOS应用工程适配OHOS

步骤一

通过HOS IDE创建标准HOS应用工程。
关键参数配置如下:
根目录build-profile.json5

{
  "app": {
    "products": [
      {
        ···
        "compileSdkVersion": "4.1.0(11)",
        "compatibleSdkVersion": "4.1.0(11)",
        "runtimeOS": "HarmonyOS",
        ···
      }
    ],
  }
}

步骤二

签名配置时勾选Automatically generate signature

注意:Support HarmonyOS是否勾选都对安装运行暂无影响。但是勾选后会在根目录build-profile.json5签名部分新增一个配置

{
  "app": {
    "signingConfigs": [
      {
        ···
        "type": "HarmonyOS",
        ···
      }
    ]
  }
}

步骤三

将编译好的hap通过hdc install命令即可同时安装运行在HOS和OHOS设备上。

img

带有三方SDK的工程

如果想集成三方SDK(如高德地图、微博等),只需要在纯净工程的基础上,下载安装SDK依赖即可正常使用。

跨平台工程

跨平台工程的本质是基于其他的框架或语言,通过鸿蒙交叉编译工具链,编译而成的特殊的三方SDK(如flutter等)。因此在双端兼容性适配上,与带有三方SDK的工程没有区别。

注意事项

  1. IDE签名时勾选的Support HarmonyOS默认都是debug签名。debug签名会依据当前连接的设备,将其deviceId写入到签名文件里。因此,每次新连接一台设备,都需要重新进行一次自动签名操作。

  2. 对于HOS和OHOS应用工程,由于SDK不同(HOS SDK包含HMS Core),且版本有差异化,因此可能出现使用某些系统不存在的api时,报错或者闪退的情况。

  3. 使用三方SDK时,如果SDK里带有so,需要so与系统架构相匹配,如SDK里的so仅支持64位,那么系统必须支持64位才能正常安装运行带有该SDK的应用。

  4. 上述说的OH设备为标准系统设备,如果有定制化的话(特别对于BMS、AMS、安全子系统等这几块),不能保证应用能正常安装运行。

  5. 如果应用签名证书是由华为开发者网站颁发的生产证书,那么由于该证书不在OH标准系统的预置证书里,因此OH设备无法安装此应用。如果想让OH设备安装能够安装此应用,可以将证书校验逻辑屏蔽掉

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐