Как расшифровать номера версий Android вида x.y.z

Коротко: в формате x.y.z x — major (крупный релиз с новыми API и интерфейсом), y — minor (внутрирелизные улучшения и совместимость), z — patch (малые багфиксы и стабильностные исправления). Первые 200 символов дают ответ: для совместимости приложений важен API level, а для безопасности — security patch level; x.y.z — удобная для людей нотация платформы.

Оглавление {{TOC_AUTOMATIC}}

Что означает каждая часть x.y.z — подробнее

  • x (major) — номер крупного релиза платформы: добавляет новые API, заметные изменения интерфейса и поведения. Пример: 12 → Android 12.
  • y (minor) — минорное обновление внутри major: может вводить новые возможности, улучшать совместимость и исправлять важные баги, но обычно без новых больших API.
  • z (patch) — маленькие обновления: исправления ошибок, оптимизации, иногда исправления уязвимостей. Часто встречается в сборках OEM как точечные обновления.

Формально платформа может опускать y и z (например «12» = «12.0.0»), но производители могут показывать разный видимый формат в настройках.

Почему важно понимать это отдельно от API level и security patch

  • API level — числовая метка, определяющая набор доступных библиотечных API для приложений (minSdk/targetSdk ориентируются на API level). Номер x.y.z не всегда однозначно указывает API level.
  • Security patch level — дата (YYYY‑MM‑DD), показывающая, какие ежемесячные исправления безопасности включены. Это независимая метка, не равная z.
  • Build‑метки и кодовые имена (например Lollipop, Jelly Bean) используются для маркетинга и идентификации сборки у производителя, но для совместимости приложений ориентируйтесь на API level и security patch.

Видимый в настройках номер (например «12») может скрывать более точную внутреннюю версию («12.0.1») и актуальный security patch. Для диагностики используйте системные поля (ro.build.version, API level, security patch).

Примеры (разбор конкретных номеров)

Сопроводительная таблица по примерам

Номер версииКороткоТипичные последствия
4.1.3Major 4, minor 1, patch 3Небольшие исправления в рамках Jelly Bean; API level соответствует релизу 4.1.
5.1.1Major 5, minor 1, patch 1MR для Lollipop — улучшения стабильности и исправления.
12.0.1Major 12, minor 0, patch 1Точечный патч внутри Android 12; API level обычно не меняется, но исправлены баги/регрессии.

Для разработчика: если API level не изменился между 12.0 и 12.0.1, новые API не появились — но багфиксы и поведение системы могли скорректировать работу приложения.

При тестировании приложения проверяйте не только видимый номер x.y.z, но и API level и security patch на реальном устройстве — это даст точную картину совместимости и безопасности.

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

  • Путать x.y.z с API level — это разные вещи; приложение ориентируется на API level.
  • Считать z эквивалентом security patch — нет: z — это часть версии платформы, security patch — дата с перечислением исправленных уязвимостей.
  • Опираться только на отображаемую в настройках версию: производители могут сокращать представление (например «12» вместо «12.0.1»).

FAQ

  • Нужно ли обновляться с 12.0 на 12.0.1?
    Если обновление включает исправления критичных багов или security patch — стоит. Проверяйте состав обновления в описании релиза.

  • Изменится ли API level при переходе 12 → 12.0.1?
    Обычно нет: patch‑релизы не добавляют новых API. Но убедитесь по официальной документации сборки.

  • Как узнать точный API level и security patch на устройстве?
    В настройках в разделе «О телефоне» смотрите «Уровень API/Версия Android» и «Security patch level» или используйте отладочную команду (adb) для чтения системных свойств.

Если нужно — добавлю инструкцию, как через adb и пункты меню получить ro.build.version, API level и security patch, а также таблицу с соответствием версий и API level для выбранных релизов.