开发者
下载

版本查询机制

Runtime提供多层次的版本查询接口,帮助应用在运行时获取环境信息,实现兼容性适配。

Runtime版本查询

使用aclsysGetVersionNum接口查询Runtime版本号,传入包名"runtime"

char pkgName[] = "runtime";
int32_t versionNum;
aclsysGetVersionNum(pkgName, &versionNum);

printf("Runtime Version Num: %d\n", versionNum);

返回的versionNum是一个整数值,遵循语义化版本编码规则,便于版本比较。

版本部分

权重

说明

major(主版本号)

10000000

不兼容的API变更

minor(次版本号)

100000

向后兼容的功能新增

patch(修订号)

1000

向后兼容的问题修复

正式版本计算公式:

versionNum = major × 10000000 + minor × 100000 + patch × 1000

计算示例:

版本字符串

计算过程

versionNum

9.0.0

9×10000000 + 0×100000 + 0×1000

90000000

8.5.1

8×10000000 + 5×100000 + 1×1000

80501000

Driver版本查询

Runtime依赖驱动能力,部分特性功能需要同时判断驱动版本号以做兼容性处理,传入"driver"包名可查询驱动版本号。

char pkgName[] = "driver";  // 查询驱动版本,使用"driver"
int32_t versionNum;
aclsysGetVersionNum(pkgName, &versionNum);
printf("Package Version Num: %d\n", versionNum);

运行时特性查询

使用aclrtGetDevFeature查询设备支持的特性能力,实现功能特性的条件适配:

int32_t deviceId = 0;
aclrtSetDevice(deviceId);

// 查询是否支持某特性
int32_t isSupported = 0;
aclrtGetDevFeature(deviceId, ACL_FEATURE_XXX, &isSupported);

if (isSupported) {
    // 使用新特性
} else {
    // 使用兼容方案
}