Android API Level 到底是什么?和安卓什么关系?应用发布如何知道自己的版本?优雅草卓伊凡
Android API Level 到底是什么?和安卓什么关系?应用发布如何知道自己的版本?优雅草卓伊凡
Android API Level 详解
Android API Level 是 Android 系统版本的数字化标识,每个 Android 版本都有一个对应的 API Level,用于标识该版本提供的系统功能和兼容性支持。开发者通过指定 minSdkVersion
(最低支持版本)、targetSdkVersion
(目标适配版本) 和 compileSdkVersion
(编译版本) 来控制应用在不同 Android 设备上的运行行为。
1. Android API Level 与 Android 版本的关系
Android 版本 | API Level | 代号 | 重要特性(示例) |
Android 14 | 34 | UpsideDownCake | 更严格的存储权限、后台限制 |
Android 13 | 33 | Tiramisu | 通知权限、照片选择器 |
Android 12 | 31-32 | SnowCone | Material You 设计、隐私仪表盘 |
Android 11 | 30 | Red Velvet | 分区存储、一次性权限 |
Android 10 | 29 | Q | 深色模式、折叠屏支持 |
Android 9 | 28 | Pie | 刘海屏适配、机器学习API |
Android 8 | 26-27 | Oreo | 通知渠道、自动填充框架 |
… | … | … | … |
minSdkVersion
:应用最低支持的 Android 版本(API Level),低于此版本的设备无法安装。targetSdkVersion
:应用适配的目标版本,决定应用使用哪些新特性并遵循哪些新限制(如 Android 12+ 的存储权限限制)。compileSdkVersion
:编译时使用的 SDK 版本,影响代码能否调用新 API(但不会影响运行时行为)。
2. 在 UniApp 开发中如何设置 API Level?
UniApp 最终会编译成 Android APK,因此需要在 manifest.json
或 原生配置 中设置:
(1)方式 1:在 manifest.json
中配置(推荐)
{"app-plus": {"android": {"minSdkVersion": 21, // 最低支持 Android 5.0(建议至少 21+)"targetSdkVersion": 33 // 建议设置为较新版本(如 33,适配 Android 13)}}
}
minSdkVersion
建议 ≥ 21(Android 5.0),否则可能无法使用现代 WebView 或某些硬件功能。targetSdkVersion
建议 ≥ 30(Android 11),否则可能被 Google Play 拒绝上架。
(2)方式 2:在原生 build.gradle
中配置(如需深度定制)
如果 UniApp 的 HBuilderX 打包无法满足需求,可以导出 Android 原生工程,修改:
android {defaultConfig {minSdkVersion 21targetSdkVersion 33}
}
3. 如何查看当前应用支持的 API Level?
(1)查看 UniApp 编译后的 APK 信息
- 使用
aapt
(Android Asset Packaging Tool) 命令:
aapt dump badging your_app.apk | grep "sdkVersion"
输出示例:
sdkVersion:'21'
targetSdkVersion:'33'
(2)通过 Android Studio 分析 APK
- 拖拽 APK 到 Android Studio。
- 查看
AndroidManifest.xml
中的:
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33" />
(3)在 UniApp 控制台查看
- 打包完成后,HBuilderX 控制台会输出类似:
[INFO] minSdkVersion: 21, targetSdkVersion: 33
4. 如何选择合适的 API Level?
场景 | 推荐设置 | 原因 |
最大兼容性 |
(Android 5.0) | 覆盖 95%+ 设备 |
上架 Google Play |
(Android 11) | 2023 年后强制要求 |
使用新特性(如深色模式) |
(Android 10) | 支持 Storage Access Framework |
快应用/低端设备 |
(Android 4.4) | 兼容老旧设备 |
5. 常见问题
(1)如果 targetSdkVersion
设置过低会怎样?
- Google Play 可能会拒绝上架(2023 年后要求 ≥ 30)。
- 应用无法使用新系统的优化(如 Android 12 的隐私限制)。
(2)minSdkVersion
设置太低会怎样?
- 可能无法使用新 API(如
BluetoothLeScanner
需要 API 21+)。 - 但可以覆盖更多老旧设备(如 Android 4.4)。
(3)快应用(Quick App)是否需要特殊设置?
快应用基于 Android 5.0+,通常 minSdkVersion=21
即可,但需额外检查厂商快应用引擎的支持情况(如华为快应用可能要求 API 24+)。
总结
minSdkVersion
决定最低支持的 Android 版本(建议 ≥ 21)。targetSdkVersion
决定应用适配的最新特性(建议 ≥ 30)。- 在 UniApp 中通过
manifest.json
或原生build.gradle
配置。 - 使用
aapt
或 Android Studio 查看已编译 APK 的 API Level。
如果有更具体的兼容性问题(如华为快应用、小米快应用),可以进一步分析厂商文档。