Почему AndroidX нужно, чтобы значение compileSdkVersion было равно 28 или выше - PullRequest
0 голосов
/ 19 декабря 2018

Я недавно узнал об Android, и у меня возник вопрос о новой библиотеке AndroidX.Я понимаю, что AndroidX - это просто новое обновление библиотеки поддержки, которое направлено на обеспечение обратной совместимости для более ранних Android SDK.

Однако Google требует, чтобы «Если вы хотите использовать AndroidX в новом проекте, вам нужно установить SDK для компиляции на Android 9.0 (уровень API 28) или выше».Я запутался здесь.Означает ли это, что AndroidX на самом деле использует некоторые методы или функции API, которые доступны только в Android 9.0 или более поздней версии?Если да, то как он может обеспечить обратную совместимость для старых API, которые не имеют доступа к этим высокоуровневым методам API?

Я не думаю, что у библиотеки поддержки есть какие-либо требования к compileSdkVersion.

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

Скомпилированная версия - это то, что вам нужно использовать при разработке приложения в вашей IDE. Согласно этому ответу.

Так что не имеет значения, на каком SDK вы делаете свой код.это всегда обеспечит обратную совместимость.

0 голосов
/ 04 июня 2019

У меня тоже был такой же вопрос.Ключ, не путайте minSdkVersion с compileSdkVersion.Если minSdkVersion равен 16, то ваше приложение будет поддерживать вплоть до Android API версии 16. Но для использования AndroidX необходимо убедиться, что compileSdkVersion равно 28. Обычно при компиляции приложения вы используете самую последнюю версию Android SDK.в любом случае, так что в этом нет ничего нового.

Вот пример файла build.gradle для приложения, использующего AndroidX.Обратите внимание на minSdkVersion с compileSdkVersion номерами версий.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.core:core-ktx:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
0 голосов
/ 19 декабря 2018

Я смущен, означает ли это, что AndroidX на самом деле использует некоторые методы или функции API, которые доступны только в Android 9.0 или более поздней версии?

Нет AndroidX будет доступно для выпусков Android с обратной совместимостью

Чтение Обзор AndroidX

  • Как и библиотека поддержки, AndroidX поставляетсяотдельно от ОС Android и обеспечивает обратную совместимость между версиями Android.

Для получения дополнительной информации, пожалуйста, прочитайте Блог разработчиков Android о Hello World, AndroidX

ТАКЖЕ Узнайте больше о compileSdkVersion

compileSdkVersion

  • compileSdkVersion - это ваш способ Gradle узнать, какая версия Android SDKскомпилировать ваше приложение с.Использование нового Android SDK является обязательным требованием для использования любого из новых API, добавленных на этом уровне.
  • Следует подчеркнуть, что изменение compileSdkVersion не меняет поведение во время выполнения
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...