外观
如何为旧版本 Android 提供降级功能而非直接崩溃?
标准回答
降级就是检测能力后选择能完成核心任务的替代路径,而不是直接执行不存在的 API。
- 运行时使用 SDK_INT 分支,必要时调用 AndroidX 的兼容 API。
- 检查 minSdk、targetSdk、compileSdk 各自影响的层面。
- Lint 的 NewApi 告警要通过版本保护、兼容实现或有证据的替代修复。
通俗例子
新系统用系统照片选择器,旧环境用合适的文件选择方案;若没有某项能力,明确隐藏或说明限制,避免崩溃。
深入解释
**降级不是简单捕获崩溃:**调用前先判断系统版本和实际能力,不支持时走替代流程。例如缺少某种硬件能力时展示普通交互,而不是调用失败后一直重试。
**同版本也可能不同:**厂商实现、硬件、权限和服务安装情况都会影响可用性。因此版本判断之外,还要检查能力、结果与失败原因。
易混淆点
提高 compileSdk 只让编译器认识新 API,不会让旧设备自动实现该 API。
内容来源
- Android · AI Agent 知识手册 · 原条目
16.5.3