Краткий справочник по API‑уровням Android 20–35
API 20 = Android 4.4W (Wear), 21 = 5.0, 22 = 5.1, 23 = 6.0, 24 = 7.0, 25 = 7.1, 26 = 8.0, 29 = 10, 30 = 11, 32 = 12L, 34 = 14, 35 = 15. Ниже — таблица соответствий и практические советы для minSdk/targetSdk и runtime‑проверок.
Соответствие API и версий
| API level | Версия Android | Кодовое имя / примечание |
|---|---|---|
| 20 | Android 4.4W | KitKat for Wear (Wear OS) |
| 21 | Android 5.0 | Lollipop |
| 22 | Android 5.1 | Lollipop MR1 |
| 23 | Android 6.0 | Marshmallow |
| 24 | Android 7.0 | Nougat |
| 25 | Android 7.1 | Nougat MR1 |
| 26 | Android 8.0 | Oreo |
| 29 | Android 10 | — |
| 30 | Android 11 | — |
| 32 | Android 12L | S_V2 — фокус на крупные экраны/планшеты |
| 34 | Android 14 | Upside Down Cake |
| 35 | Android 15 | Vanilla Ice Cream |
Быстро: в рантайме проверяйте Build.VERSION.SDK_INT и используйте константы Build.VERSION_CODES для читаемости и совместимости.
Как проверять API и что ставить в Gradle
- Runtime‑проверка (Kotlin):
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
// код для API 34+
}
- Runtime‑проверка (Java):
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S_V2) {
// код для API 32+
}
- minSdkVersion — минимальная поддерживаемая версия. Выбирайте её исходя из аудитории и требований библиотек (часто >=21).
- targetSdkVersion — версия, для которой приложение протестировано; повышая её, вы принимаете поведенческие изменения ОС.
Google Play требует целиться в актуальный targetSdk (в 2025–2026 гг. — API 35). Перед повышением обязательно прогоните регрессию: UI, разрешения, foreground/background поведение и сервисы.
Рекомендации при повышении targetSdk до 35
- Соберите список возможных изменений поведения (permissions, foreground services, background location, storage, window insets).
- Запустите тесты на реальных устройствах и эмуляторах с API 34 и 35.
- Проверьте third‑party SDK и библиотеки на совместимость; обновите AndroidX/Jetpack.
- Протестируйте сценарии обновления с устройств с более низкими версиями (миграции, storage).
Частые ошибки
- Поменял только targetSdk в Gradle и не протестировал — приводит к неожиданным UI/permission‑регрессиям.
- Использует константы API без проверки SDK_INT — вызывает ClassNotFound/NoSuchMethod на старых устройствах.
- Считает, что API level == номер релиза в маркетинге (иногда кодовое имя/вариант релиза имеют отдельный API, как 20 и 32).
FAQ
- Что означает API 20 отдельно от 19?
API 20 — ветка Android 4.4W для носимых устройств (Wear), отличавшаяся от основной 4.4 (API 19). - Чем отличается API 32 (12L) от 31/33?
Это отдельный релиз с дополнениями для крупных экранов; в системе представлен отдельной константой (S_V2 = 32).
Если нужно, подготовлю: расширенную таблицу с датами релизов и ключевыми изменениями по каждой версии или чеклист тестирования при апгрейде targetSdk до 35. Выберите вариант.