#android #android_studio
Допустим, в build.gradle файле есть следующие строки:
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.common.app"
versionCode 1
versionName "1.0"
minSdkVersion 15
targetSdkVersion 18
}
}
Что значит minSdkVersion более-менее понятно - минимальная версия уровня API, на
устройствах с API ниже которой приложение не будет запускаться. А что значат остальные
...SdkVersion: targetSdkVersion, compileSdkVersion и buildToolsVersion?
Да, я читала, что targetSdkVersion - это версия API, о которой ты думаешь, когда
пишешь приложение (типа API целевого устройства), compileSdkVersion - это версия API
для компиляции, buildToolsVersion - версия Android SDK build tools, но как-то это не
добавляет понимания, зачем их нужно так много... А ещё же есть Android Plugin Version
и Gradle Version - как они со всеми этими ...SdkVersion соотносятся?..
Ответы
Ответ 1
Gradle version - версия, использумая для обработки gradle скриптов, влияет на процесс сборки (косвенно зависит от Android Gradle Plugin) Android Gradle Plugin version - версия плагина, для обработки секции android { ... } в build.gradle, влияет на процесс сборки (зависит от необходимой поддержки: например нативная поддержка лямбд из JDK8 требует 2.4.0+) buildToolsVersion (рекомендуется последняя) - версия утилит (dx, aapt, etc) из sdk/build-tools/, которые будут использоваться для сборки (не зависит) minSdkVersion - прописывается в AndroidManifest, приложение не установится, если системный SDK меньше. (не зависит) maxSdkVersion (редко используется) - прописывается в AndroidManifest, приложение не установится, если системный SDK больше. (не зависит) compileSdkVersion - версия android.jar, которая будет подключаться при компиляции, если будет попытка использовать API из новой версии - не скомпилируется (зависит от java кода) targetSdkVersion - не влияет на компиляцию, это обещание для системы "приложение должно хорошо работать на версии Х", влияет на то, будут ли включаться legacy-механизмы (например, для разрешений при targetSdkVersion < 23). Так же может влиять на внешний вид приложения Так же должно выполняться: minSdkVersion <= targetSdkVersion <= compileSdkVersion
Комментариев нет:
Отправить комментарий