Хронология Android: версии, годы и соответствие API/SDK
Ниже — сводная таблица всех релизов Android с годом, маркетинговым номером, десертным именем (если применимо) и соответствующим уровнем API/SDK, чтобы быстро свериться при планировании поддержки или разработке.
Для технических решений ориентируйтесь на уровень API — именно он определяет доступность классов и методов.
Таблица версий Android (год, версия, имя, API)
| Год | Версия Android | Название (десерт) | Уровень API |
|---|---|---|---|
| 2008 | 1.0 | — | 1 |
| 2009 | 1.1 | Petit Four (внутренне) | 2 |
| 2009 | 1.5 | Cupcake | 3 |
| 2009 | 1.6 | Donut | 4 |
| 2009–2010 | 2.0–2.1 | Eclair | 5–7 |
| 2010 | 2.2 | Froyo | 8 |
| 2010–2011 | 2.3–2.3.7 | Gingerbread | 9–10 |
| 2011 | 3.0–3.2.6 | Honeycomb (планшеты) | 11–13 |
| 2011–2012 | 4.0–4.0.4 | Ice Cream Sandwich | 14–15 |
| 2012–2013 | 4.1–4.3.1 | Jelly Bean | 16–18 |
| 2013 | 4.4–4.4.4 | KitKat | 19 |
| 2014 | 4.4W–4.4W.2 | KitKat for Wear | 20 |
| 2014–2015 | 5.0–5.1.1 | Lollipop | 21–22 |
| 2015–2016 | 6.0–6.0.1 | Marshmallow | 23 |
| 2016 | 7.0–7.1.2 | Nougat | 24–25 |
| 2017 | 8.0–8.1 | Oreo | 26–27 |
| 2018 | 9 | Pie | 28 |
| 2019 | 10 | (Q, без десерта) | 29 |
| 2020 | 11 | (R) | 30 |
| 2021–2022 | 12 / 12L | (S) / 12L | 31 / 32 |
| 2022 | 13 | Tiramisu (внутр.) | 33 |
| 2023 | 14 | Upside Down Cake (внутр.) | 34 |
| 2024 | 15 | (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 через библиотеки, но функциональность может быть ограничена.