Что такое API Level и как быстро узнать его на устройстве

API Level — это целое число, однозначно идентифицирующее набор Android API, доступный на платформе. Узнать API можно быстро: в Settings → About (версия Android) или точнее — через adb: adb shell getprop ro.build.version.sdk.

Коротко про API Level

API Level показывает, какие классы, методы и XML‑атрибуты доступны приложению. Разработчики указывают minSdkVersion и targetSdkVersion — система сравнивает их с API устройства и решает, можно ли установить и как приложение будет себя вести. Чем выше API, тем новее возможности; слишком высокий minSdkVersion блокирует установку на старых устройствах.

Как узнать свой API Level — 5 практических способов

  1. Через «Настройки» (быстро)
  • Откройте Settings → About phone → Android version. Часто показывает только версию (например, 10); сопоставьте её с API (например, Android 10 → API 29).
  1. Через ADB (точно, для разработчиков)
  • Подключите устройство по USB или используйте эмулятор и выполните:
adb shell getprop ro.build.version.sdk

Команда вернёт целое число — API level (например, 29). Для детальной информации можно посмотреть все свойства: adb shell getprop.

Если видите значение "1", это означает API 1 — исторический образ Android 1.0.

  1. В манифесте или Gradle проекта (для приложений)
  • В AndroidManifest.xml или в build.gradle смотрите minSdkVersion / targetSdkVersion. Пример Gradle:
android {
  defaultConfig {
    minSdkVersion 21
    targetSdkVersion 33
  }
}

Это говорит, на каких API приложение рассчитано.

  1. Через Android Studio / Device Manager
  • Подключите устройство в IDE — в Device Manager или в окне Run/Logcat видно версию. Можно открыть встроенный терминал и использовать adb.
  1. Через файлы прошивки (для продвинутых)
  • На устройстве с root или в образе проверьте /system/build.prop или свойства:
adb shell cat /system/build.prop | grep ro.build.version

Обратите внимание на ro.build.version.sdk и ro.product.first_api_level.

Кастомные прошивки иногда неправильно указывают свойства. Сверяйте ro.build.version.release и ro.product.first_api_level одновременно.

API 1 — что это значит и зачем об этом знать

API 1 соответствует релизу Android 1.0 (первый коммерческий выпуск). Практически нет современных устройств или приложений, которые поддерживают API 1 — современные библиотеки требуют значительно более высоких API. Если устройство возвращает API 1, это либо старый эмулятор/образ, либо специфическая кастомная сборка.

Практический пример определения:

  1. Подключите устройство.
  2. Выполните:
adb shell getprop ro.build.version.sdk
  1. Вывод "1" значит API 1 — устройство использует самый ранний набор API.

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

  • Ожидание, что «Android version» в настройках всегда равна API level — не всегда.
  • Игнорирование ro.product.first_api_level при анализе кастомных прошивок.
  • Установка minSdkVersion слишком высокой без учёта реальной целевой аудитории.

FAQ

  • Как соотнести версию Android и API?
    — Каждой публичной версии Android соответствует свой API level (например, Android 10 → 29, Android 14 → 34). Используйте официальную таблицу соответствий при сомнениях.

  • Можно ли изменить API level устройства?
    — Нет — API определяется системой/прошивкой. Можно только установить другую прошивку/образ с другим API.

  • Что делать, если приложение не устанавливается из‑за API?
    — Проверьте minSdkVersion в сборке приложения и API устройства. Для поддержки старых устройств можно снизить minSdkVersion и добавить проверки во время выполнения, но это требует тестирования.

Короткое резюме: API Level — число, определяющее набор доступных Android API; проверить быстро в Settings, а точно — через adb getprop ro.build.version.sdk.