Skip to content
阅读进度

如何为旧版本 Android 提供降级功能而非直接崩溃? ​

返回 兼容与平台扩展 目录

标准回答 ​

降级就是检测能力后选择能完成核心任务的替代路径,而不是直接执行不存在的 API。

  • 运行时使用 SDK_INT 分支,必要时调用 AndroidX 的兼容 API。
  • 检查 minSdk、targetSdk、compileSdk 各自影响的层面。
  • Lint 的 NewApi 告警要通过版本保护、兼容实现或有证据的替代修复。

通俗例子 ​

新系统用系统照片选择器,旧环境用合适的文件选择方案;若没有某项能力,明确隐藏或说明限制,避免崩溃。

深入解释 ​

**降级不是简单捕获崩溃:**调用前先判断系统版本和实际能力,不支持时走替代流程。例如缺少某种硬件能力时展示普通交互,而不是调用失败后一直重试。

**同版本也可能不同:**厂商实现、硬件、权限和服务安装情况都会影响可用性。因此版本判断之外,还要检查能力、结果与失败原因。

易混淆点 ​

提高 compileSdk 只让编译器认识新 API,不会让旧设备自动实现该 API。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。