应用兼容性处理
应用开发时预留扩展能力便于前向兼容(适配新版本)或者新版本应用需在旧版本环境运行时做后向兼容(支持旧版本),可采用如下处理方式:
- 运行时版本检测:程序启动时获取版本信息,记录日志或进行适配判断。
// 版本条件执行 int32_t versionNum; aclsysGetVersionNum("runtime", &versionNum); int32_t major = 8; int32_t minor = 5; if (versionNum >= major * 10000000 + minor * 100000) { // 使用新版本特性接口 aclrtQueryEventStatus(event, &status); } else { // 使用旧版本兼容接口 aclrtQueryEvent(event, &status); } - 特性能力探测:使用特性查询接口而非硬编码版本号判断。
// 查询特性支持情况 int32_t isSupported = 0; aclrtGetDevFeature(deviceId, ACL_FEATURE_TSCPU_TASK_UPDATE_SUPPORT_AIC_AIV, &isSupported); if (isSupported) { // 使用新特性实现高效路径 useNewFeaturePath(); } else { // 降级到兼容实现 useLegacyPath(); }
父主题: 兼容性处理