В чем разница между минимальной версией SDK версии / целевой версии SDK и компиляцией версии SDK?

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

Я знаю, что означает min и target sdk, но что означает компиляция версии sdk? В eclipse у меня есть min / max и target sdk, но в студии Android есть три этих параметра.

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

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

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

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

Я не собирался сорвать чужой ответ, но я действительно надеюсь, что это проливает свет на то, чтобы отличить эти три термина.

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

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

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

compile версия sdk – это версия Android, которую инструменты сборки используют для компиляции и сборки приложения для выпуска, запуска или отладки.

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

Формула

minSdkVersion <= targetSdkVersion <= compileSdkVersion

minSdkVersion – это маркер, который определяет минимальную версию Android, на которую приложение сможет установить. Также он используется Lint для предотвращения вызова API, который не существует. Также это влияет на время сборки. Таким образом, вы можете использовать встроенные атрибуты для переопределения 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?

  • динамическая строка с использованием String.xml?
  • Имитировать низкий уровень заряда аккумулятора и низкую память в Android
  • GooglePlayServicesUtil против GoogleApiAvailability
  • Android: использование WebView вне контекста активности
  • Широковещательный приемник для проверки подключения к Интернету в приложении Android
  • Как запросить разрешение на размещение во время выполнения на Android 6
  • RuntimeException: ваш контент должен иметь ListView, чей атрибут id - 'android.R.id.list'
  • Android SDK: получить изображение предварительного просмотра камеры без его отображения
  • Проверьте, подключено ли устройство
  • Сохранять состояние fragmentа между действиями
  • Как сохранить изображение в базе данных SQLite
  • Давайте будем гением компьютера.