版本查询机制
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 {
// 使用兼容方案
}
父主题: 兼容性处理