Краткий справочник по 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Кодовое имя / примечание
20Android 4.4WKitKat for Wear (Wear OS)
21Android 5.0Lollipop
22Android 5.1Lollipop MR1
23Android 6.0Marshmallow
24Android 7.0Nougat
25Android 7.1Nougat MR1
26Android 8.0Oreo
29Android 10
30Android 11
32Android 12LS_V2 — фокус на крупные экраны/планшеты
34Android 14Upside Down Cake
35Android 15Vanilla 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. Выберите вариант.