В чем разница между min SDK version/target SDK version и compile SDK version?



каковы различия между" min sdk version/target sdk version "и"compile sdk version"?



Я знаю, что означает min и target sdk, но что означает compile sdk version?
В eclipse у меня есть min/max и target sdk, но в android studio есть эти три настройки.

1090   5  

5 ответов:

чтобы уточнить ответ @anuraagy:

min sdk version это самый ранний выпуск Android SDK, на котором может работать ваше приложение. Обычно это происходит из-за проблемы с более ранними API, отсутствия функциональности или какой-либо другой поведенческой проблемы.

целевая версия sdk версия приложения была targeted для работы на. В идеале это происходит из-за каких-то оптимальных условий работы. Если бы Вы были "сделать ваше приложение для версии 19 " Вот где это будет указано. Он может работать на более ранних или более поздних версиях, но это то, к чему стремились. Это в основном, чтобы показать, как ваше приложение предназначено для использования на рынке и т. д.

компиляция версии sdk версия android, которую ваша IDE (или другие средства компиляции, я полагаю) использует для создания вашего приложения при публикации .apk файл. Это полезно для тестирования вашего приложения, так как это общая потребность в компиляции вашего приложение, как вы его развивать. Поскольку это будет версия для компиляции в APK, это, естественно, будет версия вашего релиза. Кроме того, желательно, чтобы это совпадение вы целевой версии sdk.

Я не хотел срывать чей-то ответ, но я действительно надеюсь, что это прольет некоторый свет на различение этих трех терминов.

Хороший Вопрос!

min sdk version - это минимальная версия операционной системы Android, необходимых для запуска вашего приложения.

целевая версия sdk это версия Android, на которой было создано ваше приложение.

компиляция версии sdk - это версия Android, что build tools используется для компиляции и сборки приложения для выпуска, запуска или отлаживать.

обычно компиляция версии sdk и целевой версии sdk одинаковы.

формула

minSdkVersion

minSdkVersion - это маркер, который определяет минимальную версию Android, на которой приложение сможет установить. Также он используется Lint для предотвращения вызова API, который не существует. Также это влияет на время сборки. Таким образом, вы можете использовать build flavors для переопределения minSdkVersion до максимума во время разработки. Это поможет сделать сборку быстрее, используя все улучшения, которые предоставляет нам команда Android. Например, некоторые функции Java 8 доступны только из конкретной версии minSdkVersion.

targetSdkVersion - говорит система Android, чтобы включить определенные изменения поведения.

хороший пример-опасные разрешения (от 23 API). Если вы установите targetSdkVersion до 22 приложение не запрашивает пользователя разрешение на запуск времени.

начиная с Android 8.0 (уровень API 26), все уведомления должны быть назначены каналу, иначе он не будет отображаться. На устройствах под управлением Android 7.1 (уровень API 25) и ниже пользователи могут управлять уведомлениями только для каждого приложения (фактически каждое приложение имеет только один канал на Android 7.1 и ниже).

compileSdkVersion - на самом деле это версия платформы SDK и говорит Gradle, который Android SDK использовать для компиляции. Если вы хотите использовать новые функции или отладки .java файлы из Android SDK вы должны заботиться о compileSdkVersion. Еще один факт-compileSdkVersion >= версия библиотеки поддержки

вы можете прочитать больше об этом здесь. Также я бы рекомендовал вам взглянуть на пример миграция для Android 8.0

смотрите здесь, что лучше указать в целевая версия sdk последняя выпущенная версия API: в чем разница между compileSdkVersion и targetSdkVersion?

Comments

  1. cyBEERkotleta
    cyBEERkotleta 2 года назад
    <p>Идеальная формула:<br />
    minSdk &lt;= targetSdk == compileSdk, где</p>

    <p>minSdk – наименьшая возможная,<br />
    compileSdk – последняя вышедшая.<br /><br />
    Параметр <em>compileSdk </em>– это версия Android SDK, которая используется для компиляции приложения. Она определяет набор API, доступных для использования в приложении. Рекомендуется использовать самую последнюю версию SDK, чтобы иметь доступ ко всем новым возможностям. На момент сентября 2023 года это Android API 33.<br />
    Параметр <em>targetSdk </em>– это версия Android, для которой приложение оптимизировано. Она указывает системе Android, как обрабатывать приложение на устройствах с этой версией. Нужно устанавливать <em>targetSdk </em>на самую последнюю доступную версию. Это для того, чтобы обеспечить совместимость с новыми устройствами и обновлениями.<br />
    Параметр <em>minSdk </em>– это минимальная версия Android, которую приложение будет поддерживать. Если устройство имеет версию Android, которая ниже указанной в <em>minSdk</em>, то приложение нельзя будет установить и запустить на этом устройстве. Следует выбирать <em>minSdk </em>с умом, чтобы приложение могло работать на широком диапазоне устройств. Вместе с этим в ней должны были уже появиться нужные вам возможности системы.</p>

    <p>Информация взята отсюда: <a href="https://beauty-of-java.site/android-development/android-api/">Android API и версия платформы (beauty-of-java.site)</a><br />
    Также в этой статье есть развёрнутая информация про версии Android API и SDK.</p>