Android API – это то, что необходимо знать разработчику под Android. Android API представляет собой набор программных средств, которые открывают доступ к функциональности телефонов Android. Эти средства позволяют программисту в своей программе взаимодействовать с аппаратными компонентами, такими как камера, датчики, сеть, а также с операционной системой Android. Android API предоставляет нам с вами инструменты для создания приложений, которые могут выполнять разнообразные задачи. В их список входят отправка сообщений, работа с геолокацией, воспроизведение мультимедийных файлов и многое другое.
Звучит очень функционально. Давайте разберёмся, как всё это не сломать. Также подумаем, какой API level выбрать для разработки Android-приложения.
Android API и версии платформ
Есть несколько понятий, с которыми мы имеем дело, погружаясь в классификацию различных версий операционной системы Android. Это версия платформы, уровень API и совокупность поддерживающих устройств – это суммарная доля всех телефонов с Android, которые смогут запустить программу, если она написана для этой версии Android. Если вы написали программу, указав в качестве минимальной версии Android 5.0, она заработает и на Android 8.1. А вот на Android 4.4 не заработает.
Посмотрим на таблицу соответствия версий API (SDK) и версий Android.
Android имеет разные версии платформы. У всех них есть названия, вплоть до 10-ой версии они были “съедобными”. У меня сейчас телефон с версией 7.1.1 – эта версия называется Nougat и соответствует, согласно таблице, уровню API 25. Если я напишу приложение, указав в качестве минимальной версии свою, оно будет работать на 93.9% устройств.
Каждая версия включает в себя новые функции, улучшения и исправления ошибок. Также от версии к версии изменяется внешний вид отдельных компонентов, используемых в интерфейсах разрабатываемых приложений. Версия Android определяет, какие функции и API доступны для использования в приложении.
API Level (уровень API) – это числовое значение, связанное с конкретной версией Android. Каждая версия Android имеет свой собственный API Level. Это значение используется в проекте для определения, какие функции и возможности можно использовать.
Прямая совместимость подразумевает, что приложение для ранней версии Android API должно работать на всех более поздних версиях платформы.
Обратная совместимость означает, что новая версия приложения может работать на ранних версиях Android без каких-либо проблем. Для обеспечения обратной совместимости важно не использовать функции и API, которые доступны только в новых версиях Android.
Android в основном обеспечивает прямую совместимость. То есть старые приложения Android совместимы с новыми версиями платформы Android. Например, одни и те же методы для обращения к графическим компонентам работают и в старых, и в новых версиях. Всё это означает, что при запуске приложения на устройстве с более высокой версией API, чем та, под которую компилируется приложение, не возникает проблем во время выполнения.
Нам с вами как разработчикам нужно быть осторожными с обратной совместимостью. Она, к сожалению, не гарантируется платформой.
Android SDK
Android SDK (Software Development Kit) – это набор инструментов и библиотек, который предоставляет средства разработки для создания Android-приложений. Он включает в себя библиотеки, исполняемые файлы, скрипты, документацию и другие инструменты.
Чтобы начать разработку под Android, нужно установить Android SDK. Как правило, версия Android SDK равна версии Android API. Таким образом, если вы хотите скомпилировать проект под Android API 32, то нужно скачать Android SDK 32.
IntelliJ IDEA позволяет легко и просто скачивать Android SDK. Если попробовать создать проект, выбрав “Android”, она предложит установить Android SDK. В готовом проекте этот SDK можно будет изменить в панели “Project Structure”.
Рекомендуется скачивать последнюю-предпоследнюю вышедшую версию Android SDK.
Параметры проекта
В проекте под Android есть несколько очень важных значений, связанных с версией Android. Это compileSdk, targetSdk и minSdk. Если вы не хотите углубляться в тонкости этих трёх параметров, то запомните важную формулу:
minSdk <= targetSdk == compileSdk
minSdk – наименьшая возможная,
compileSdk – последняя вышедшая.
Все они являются целыми числами и настраиваются в файле build.gradle, если вы пользуетесь сборщиком Gradle. При использовании других сборщиков проектов ситуация должна быть схожей.
CompileSdk
Параметр compileSdk – это версия Android SDK, которая используется для компиляции приложения. Она определяет набор API, доступных для использования в приложении. Рекомендуется использовать самую последнюю версию SDK, чтобы иметь доступ ко всем новым возможностям. На момент сентября 2023 года это Android API 33.
TargetSdk
Параметр targetSdk – это версия Android, для которой приложение оптимизировано. Она указывает системе Android, как обрабатывать приложение на устройствах с этой версией. Нужно устанавливать targetSdk на самую последнюю доступную версию. Это нужно для того, чтобы обеспечить совместимость с новыми устройствами и обновлениями. Так же, как и для compileSdk, на момент 2023 года это Android API 33.
MinSdk
Параметр minSdk – это минимальная версия Android, которую приложение будет поддерживать. Если устройство имеет версию Android, которая ниже указанной в minSdk, то приложение нельзя будет установить и запустить на этом устройстве. Следует выбирать minSdk с умом, чтобы приложение могло работать на широком диапазоне устройств. Вместе с этим в ней должны были уже появиться нужные вам возможности системы.
После настройки этих параметров можно наконец заняться непосредственно написанием кода и созданием экранов приложения (Activity). Да, всего парочка чисел могут как помочь, так и навредить. Так что с этими значениями придётся быть аккуратными. Если следовать той простой формуле с тремя версиями SDK, то особых проблем возникнуть не должно. Удачных компиляций!