Хронология Android: версии, годы и соответствие API/SDK

Ниже — сводная таблица всех релизов Android с годом, маркетинговым номером, десертным именем (если применимо) и соответствующим уровнем API/SDK, чтобы быстро свериться при планировании поддержки или разработке.

Для технических решений ориентируйтесь на уровень API — именно он определяет доступность классов и методов.

Таблица версий Android (год, версия, имя, API)

ГодВерсия AndroidНазвание (десерт)Уровень API
20081.01
20091.1Petit Four (внутренне)2
20091.5Cupcake3
20091.6Donut4
2009–20102.0–2.1Eclair5–7
20102.2Froyo8
2010–20112.3–2.3.7Gingerbread9–10
20113.0–3.2.6Honeycomb (планшеты)11–13
2011–20124.0–4.0.4Ice Cream Sandwich14–15
2012–20134.1–4.3.1Jelly Bean16–18
20134.4–4.4.4KitKat19
20144.4W–4.4W.2KitKat for Wear20
2014–20155.0–5.1.1Lollipop21–22
2015–20166.0–6.0.1Marshmallow23
20167.0–7.1.2Nougat24–25
20178.0–8.1Oreo26–27
20189Pie28
201910(Q, без десерта)29
202011(R)30
2021–202212 / 12L(S) / 12L31 / 32
202213Tiramisu (внутр.)33
202314Upside Down Cake (внутр.)34
202415(Vanilla Ice Cream — внутр., релиз 2024)35

Что важно знать разработчику про API/SDK

  • minSdkVersion определяет минимальный уровень API, при котором приложение будет работать — снижая его, вы увеличиваете аудиторию, но ограничиваете набор доступных API.
  • targetSdkVersion указывает, для каких системных поведенческих изменений приложение оптимизировано; Google Play требует поддерживать актуальный target.
  • compileSdkVersion лучше ставить равным последнему доступному API, чтобы использовать новые проверки компилятора и API.
  • Если функция описана в документации с указанием API X, она недоступна при меньшем уровне API — иногда эквивалент реализуют через библиотеки поддержки или Jetpack.

Для большинства проектов разумная комбинация: minSdkVersion — там, где покрытие устройства вашей аудитории ≥ 95%, а target/compileSdkVersion — последний стабильный API.

Как применять список в работе

  • Планирование поддержки: по требуемым API-функциям смотрите минимальный API, затем выбираете список версий для поддержки.
  • Рефакторинг: при откате минимальной поддерживаемой версии удаляйте устаревшие ветки кода и условные проверки.
  • Документация и требования: указывайте и номер Android, и уровень API, чтобы исключить недопонимание между продуктом и командой разработки.

Частые ошибки

  • Ориентироваться только на маркетинговый номер (например, "Android 12") — не помнить, что нужный метод мог появиться в точечном обновлении.
  • Не учитывать 12L/12.1 и другие платформенные «малые» релизы, которые добавляют API/изменения отдельно.
  • Ставить compileSdkVersion ниже последнего доступного и рассчитывать на статическую проверку новых API.

FAQ

  • Как быстро узнать API уровня на устройстве? — В настройках разработчика или через команду adb shell getprop ro.build.version.sdk.
  • Нужно ли поддерживать Android 6/7 сегодня? — Решение зависит от целевой аудитории; для массового рынка обычно достаточно поддержки от API 21–23 и выше, но корпоративные парки могут требовать ниже.
  • Можно ли использовать современные Jetpack-компоненты на старых API? — Да, многие компоненты обратимо поддерживают старые API через библиотеки, но функциональность может быть ограничена.