Таблица соответствия версий Android и уровней API (SDK)

API Level — целое число, которое однозначно определяет версию платформы SDK. targetSdkVersion — указывает, на каком уровне API приложение тестировалось, определяя его поведение на новых системах.Что означает уровень API?
Как использовать compileSdkVersion, minSdkVersion или targetSdkVersion?
Как можно гарантировать, что приложение будет работать правильно на устройствах с разными версиями ОС?
Для этого необходимо понимать разницу между SDK и API и знать что такое уровень API в экосистеме Android. Это правда, что в Android между SDK и API существует отношение 1:1, и часто эти два термина используются как синонимы, но важно понимать, что это не одно и то же. Правильнее говорить, что для каждой версии Android есть SDK и эквивалентный API, а также уровень этого API.
Как использовать compileSdkVersion, minSdkVersion или targetSdkVersion?
Как можно гарантировать, что приложение будет работать правильно на устройствах с разными версиями ОС?
Для этого необходимо понимать разницу между SDK и API и знать что такое уровень API в экосистеме Android. Это правда, что в Android между SDK и API существует отношение 1:1, и часто эти два термина используются как синонимы, но важно понимать, что это не одно и то же. Правильнее говорить, что для каждой версии Android есть SDK и эквивалентный API, а также уровень этого API.
SDK
Расшифровывается как Software Development Kit (комплект для разработки программного обеспечения). Обратите внимание на слово «kit» (комплект)… он как раз представляет из себя набор различных инструментов, библиотек, документации, примеров, помогающих разработчикам создавать, отлаживать и запускать приложения для Android. API предоставляется вместе с SDK. Если открыть SDK Manager в Android Studio, можно будет яснее увидеть, из чего состоит Android SDK.
На первой вкладке SDK Platform перечислены SDK каждой версии Android. Как показано на рисунке ниже, Android 9.0 SDK (также известный как Pie) содержит:
Android SDK Platform 28 (это API фреймворка).
Исходный код для Android 28 (это реализация API, как вы видите, она не является обязательной… запомните это).
и еще куча других вещей… например, различные системные образы для эмулятора Android.
На второй вкладке SDK Tools показаны другие инструменты, которые также являются частью SDK, но не зависят от версии платформы. Это означает, что они могут быть выпущены или обновлены отдельно.
Расшифровывается как Software Development Kit (комплект для разработки программного обеспечения). Обратите внимание на слово «kit» (комплект)… он как раз представляет из себя набор различных инструментов, библиотек, документации, примеров, помогающих разработчикам создавать, отлаживать и запускать приложения для Android. API предоставляется вместе с SDK. Если открыть SDK Manager в Android Studio, можно будет яснее увидеть, из чего состоит Android SDK.
На первой вкладке SDK Platform перечислены SDK каждой версии Android. Как показано на рисунке ниже, Android 9.0 SDK (также известный как Pie) содержит:
Android SDK Platform 28 (это API фреймворка).
Исходный код для Android 28 (это реализация API, как вы видите, она не является обязательной… запомните это).
и еще куча других вещей… например, различные системные образы для эмулятора Android.
На второй вкладке SDK Tools показаны другие инструменты, которые также являются частью SDK, но не зависят от версии платформы. Это означает, что они могут быть выпущены или обновлены отдельно.
API
Расшифровывается как Application Programming Interface (программный интерфейс приложения). Это просто интерфейс, уровень абстракции, который обеспечивает связь между двумя разными «частями» программного обеспечения. Он работает как договор между поставщиком (например, библиотекой) и потребителем (например, приложением).
Это набор формальных определений, таких как классы, методы, функции, модули, константы, которые могут использоваться другими разработчиками для написания своего кода. При этом API не включает в себя реализацию. Уровень API — это целочисленное значение, однозначно идентифицирующее версию API фреймворка, предлагаемую платформой Android.
Обычно обновления API фреймворка платформы разрабатываются таким образом, чтобы новая версия API оставалась совместимой с более ранними версиями, поэтому большинство изменений в новом API являются аддитивными, а старые части API становятся устаревшими, но не удаляются.
Расшифровывается как Application Programming Interface (программный интерфейс приложения). Это просто интерфейс, уровень абстракции, который обеспечивает связь между двумя разными «частями» программного обеспечения. Он работает как договор между поставщиком (например, библиотекой) и потребителем (например, приложением).
Это набор формальных определений, таких как классы, методы, функции, модули, константы, которые могут использоваться другими разработчиками для написания своего кода. При этом API не включает в себя реализацию. Уровень API — это целочисленное значение, однозначно идентифицирующее версию API фреймворка, предлагаемую платформой Android.
Обычно обновления API фреймворка платформы разрабатываются таким образом, чтобы новая версия API оставалась совместимой с более ранними версиями, поэтому большинство изменений в новом API являются аддитивными, а старые части API становятся устаревшими, но не удаляются.
По материалам ХАБР.




