鸿蒙应用中api的兼容性(一)

应用在不同API版本的设备上能否正常运行,直接关系到用户体验和用户覆盖范围。

一、API版本

环节说明
开发态开发者通过HarmonyOS SDK调用API实现业务功能
运行态设备ROM搭载的API版本决定应用能否正常运行

影响兼容性的字段

说明字段
编译应用的SDK版本开发时使用的SDK版本
应用运行的目标SDK版本targetSdkVersion
应用运行的最低SDK版本compatibleSdkVersion

版本查看方式

在HarmonyOS设备上查看API版本:设置 → 点击设备名称 → 关于本机 → API版本

二、API版本号说明

26.0.0之前的格式

格式:X.Y.Z(N)

字段说明取值范围
X主版本号,API大版本更新1-99
Y次版本号,API小版本更新0-99
Z修订版本号,微小更新0-99
NOpenHarmony底座API level1-99

26.0.0及之后的格式(语义化版本SemVer)

从API版本26.0.0开始,采用语义化版本(SemVer) 格式:X.Y.Z

字段说明
X(主版本号)包含大量新功能和重要变更,可能不兼容,需开发者适配修改
Y(次版本号)包含新功能,原则上向后兼容(重大安全隐患或关键体验问题可能引入不兼容变更)
Z(修订版本号)问题修复和小改进,保持向后兼容

API版本大小关系

26.0.0 > 6.1.1(24) > 6.1.0(23) > 6.0.2(22) > 6.0.1(21) > 6.0.0(20) > 5.1.1(19) > 5.1.0(18) > 5.0.5(17)

三、系统兼容性原则

原则说明
向下兼容基于老版本SDK开发的应用,默认可在新版本设备上正常运行
向上兼容需判断基于新版本SDK开发的应用,使用了新API,需进行兼容性判断保护后才能在老设备上正常运行

备注:

API在演进迭代过程中,因体验优化或安全等因素,可能会发生行为变更,并对已上架应用产生影响。这部分变更会专门在版本说明中体现,升级API版本时需关注版本说明。

四、示例代码

// 条件判断保护
import { deviceInfo } from '@kit.BasicServicesKit';

// 获取设备API版本
const apiVersion = deviceInfo.apiVersion;

// 示例:API D 在 5.0.3(15) 及以上才支持
if (apiVersion >= 15) { // 5.0.3(15) 的API level
    // 使用API D
    useApiD();
} else {
    // 降级处理
    useFallbackD();
}

// 示例:API E 在 5.0.4(16) 及以上才支持
if (apiVersion >= 16) { // 5.0.4(16) 的API level
    // 使用API E
    useApiE();
} else {
    // 降级处理
    useFallbackE();
}

六、开发建议

建议说明
关注版本说明API版本升级时关注行为变更说明
合理设置最低版本参考存量设备API版本数据
新API加保护使用条件判断保护新API调用
测试覆盖在不同API版本的设备上进行测试

   应用的兼容性由SDK版本和设备API版本共同决定,遵循向下兼容原则(老应用默认可在新设备运行),新API在老设备运行需进行条件判断保护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值