Android中WEBP格式API适配疑问:版本判断写法可行吗?Target SDK有影响吗?
Android WEBP压缩兼容方案与Target SDK影响分析
一、版本判断写法的合理性
你给出的版本判断写法是可行且合理的兼容方案,原因如下:
Bitmap.CompressFormat.WEBP_LOSSLESS是Android 11(API 30)新增的枚举值,仅在API 30及以上设备可用,低版本设备无法识别该常量,必须通过Build.VERSION.SDK_INT做分支判断,避免运行时崩溃。- 旧的
WEBP枚举虽被标记为废弃,但在API 29及以下设备上依然可以正常工作,废弃提示只是Android官方提醒开发者在高版本使用更明确的WEBP_LOSSLESS/WEBP_LOSSY枚举,不影响低版本代码的执行逻辑。
二、Target SDK对代码的影响
Target SDK设置会影响Android Studio的静态检查提示,但不会影响代码运行时的逻辑:
- 若Target SDK ≥30:Android Studio会认可
WEBP_LOSSLESS的合法性,不会再弹出"Field requires API level 30"的错误提示,但依然会对WEBP显示废弃警告。 - 若Target SDK <30:即使加了版本判断,Android Studio仍会对
WEBP_LOSSLESS弹出API版本要求的提示,但运行时设备会根据自身SDK版本走对应的分支,不会出现崩溃。 - 补充:
WEBP的废弃提示仅与编译SDK版本有关,只要编译SDK ≥30,就会触发该提示,和Target SDK无关。
内容的提问来源于stack exchange,提问作者kora bertrand
相关产品推荐
相关产品推荐

