HOS与OHOS应用兼容性适配调研
前言 随着鸿蒙生态日渐成熟,许多开发者希望能做到HOS和OHOS的互联互通。正好伴随着OpenHarmony 4.1-Release的发布,应用层面已经能够做到一套工程,双端运行的效果。 开发环境 系统版本: HarmonyOS: NEXT Developer Preview2OpenHarmony: 4.1-Release(OpenHarmony 4.1.7.3) DevEco Studio版本
前言
随着鸿蒙生态日渐成熟,许多开发者希望能做到HOS和OHOS的互联互通。正好伴随着OpenHarmony 4.1-Release的发布,应用层面已经能够做到一套工程,双端运行的效果。
开发环境
系统版本:
- HarmonyOS: NEXT Developer Preview2
- OpenHarmony: 4.1-Release(OpenHarmony 4.1.7.3)
DevEco Studio版本:
- HarmonyOS: DevEco Studio NEXT Developer Preview1 (build: 4.1.3.500)
- OpenHarmony: DevEco Studio 4.1 Release(build: 4.1.0.400)
SDK版本:
- HarmonyOS: NEXT Developer Preview2
- 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设备上。
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设备上。
带有三方SDK的工程
如果想集成三方SDK(如高德地图、微博等),只需要在纯净工程的基础上,下载安装SDK依赖即可正常使用。
跨平台工程
跨平台工程的本质是基于其他的框架或语言,通过鸿蒙交叉编译工具链,编译而成的特殊的三方SDK(如flutter等)。因此在双端兼容性适配上,与带有三方SDK的工程没有区别。
注意事项
IDE签名时勾选的
Support HarmonyOS
默认都是debug
签名。debug
签名会依据当前连接的设备,将其deviceId
写入到签名文件里。因此,每次新连接一台设备,都需要重新进行一次自动签名操作。对于HOS和OHOS应用工程,由于SDK不同(HOS SDK包含HMS Core),且版本有差异化,因此可能出现使用某些系统不存在的api时,报错或者闪退的情况。
使用三方SDK时,如果SDK里带有so,需要so与系统架构相匹配,如SDK里的so仅支持64位,那么系统必须支持64位才能正常安装运行带有该SDK的应用。
上述说的OH设备为标准系统设备,如果有定制化的话(特别对于BMS、AMS、安全子系统等这几块),不能保证应用能正常安装运行。
如果应用签名证书是由华为开发者网站颁发的生产证书,那么由于该证书不在OH标准系统的预置证书里,因此OH设备无法安装此应用。如果想让OH设备安装能够安装此应用,可以将证书校验逻辑屏蔽掉。
更多推荐
所有评论(0)