Kotlin Multiplatform ma wtyczkę Gradle do konfigurowania modułu biblioteki.
com.android.kotlin.multiplatform.library
to oficjalny zamiennik poprzedniej metody dodawania platform Androida do bibliotek KMP za pomocą zwykłej wtyczki Gradle do bibliotek Androida (com.android.library
).
Poprzednie podejście zostało wycofane na rzecz wtyczki, zwanej też wtyczką Android-KMP. Dalsze korzystanie z com.android.library
wtyczki do KMP nie będzie już obsługiwane przez JetBrains i nie będzie korzystać z przyszłych aktualizacji ani ulepszeń.
Aby przejść na tę wtyczkę, zapoznaj się z sekcją Stosowanie wtyczki Android-KMP.
Najważniejsze funkcje i różnice
Wtyczka Android-KMP jest dostosowana specjalnie do projektów KMP i różni się od standardowej wtyczki com.android.library
w kilku kluczowych aspektach:
Architektura pojedynczego wariantu: wtyczka używa pojedynczego wariantu, co eliminuje obsługę wersji produktu i typów kompilacji, upraszcza konfigurację i zwiększa wydajność kompilacji.
Zoptymalizowana pod kątem KMP: wtyczka jest przeznaczona do bibliotek KMP i skupia się na wspólnym kodzie Kotlin oraz interoperacyjności, pomijając obsługę natywnych kompilacji specyficznych dla Androida, AIDL i RenderScript.
Testy domyślnie wyłączone: zarówno testy jednostkowe, jak i testy urządzeń (instrumentacyjne) są domyślnie wyłączone, aby zwiększyć szybkość kompilacji. W razie potrzeby możesz je włączyć.
Brak rozszerzenia Androida najwyższego poziomu: konfiguracja jest obsługiwana za pomocą bloku
androidLibrary
w języku DSL Gradle KMP, co zapewnia spójną strukturę projektu KMP. Nie ma bloku rozszerzeniaandroid
najwyższego poziomu.Kompilacja Javy z wyrażeniem zgody: kompilacja Javy jest domyślnie wyłączona. Użyj
withJava()
w blokuandroidLibrary
, aby go włączyć. Skraca to czas kompilacji, gdy kompilacja w Javie nie jest potrzebna.
Zalety wtyczki biblioteki Android-KMP
Wtyczka Android-KMP zapewnia te korzyści w przypadku projektów KMP:
Ulepszona wydajność i stabilność kompilacji: zaprojektowano ją z myślą o optymalizacji szybkości kompilacji i zwiększeniu stabilności w projektach KMP. Skupienie się na przepływach pracy KMP przyczynia się do bardziej wydajnego i niezawodnego procesu kompilacji.
Ulepszona integracja z IDE: zapewnia lepsze uzupełnianie kodu, nawigację, debugowanie i ogólne wrażenia deweloperskie podczas pracy z bibliotekami KMP na Androida.
Uproszczona konfiguracja projektu: wtyczka upraszcza konfigurację projektów KMP, usuwając złożoności związane z Androidem, takie jak warianty kompilacji. Dzięki temu pliki kompilacji są bardziej przejrzyste i łatwiejsze w utrzymaniu. Wcześniej użycie wtyczki
com.android.library
w projekcie KMP mogło powodować tworzenie mylących nazw zestawów źródeł, np.androidAndroidTest
. Ta konwencja nazewnictwa była mniej intuicyjna dla programistów znających standardowe struktury projektów KMP.
Zastosuj wtyczkę Android-KMP do istniejącego modułu
Aby zastosować wtyczkę Android-KMP do istniejącego modułu biblioteki KMP, wykonaj te czynności:
Zadeklaruj wtyczki w katalogu wersji. Otwórz plik TOML katalogu wersji (zwykle
gradle/libs.versions.toml
) i dodaj sekcję definicji wtyczek:# To check the version number of the latest Kotlin release, go to # https://kotlinlang.org/docs/releases.html [versions] androidGradlePlugin = "8.12.0" kotlin = "KOTLIN_VERSION" [plugins] kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "androidGradlePlugin" }
Zastosuj deklarację wtyczki w głównym pliku kompilacji. Otwórz plik
build.gradle.kts
znajdujący się w katalogu głównym projektu. Dodaj aliasy wtyczek do blokuplugins
za pomocąapply false
. Dzięki temu aliasy wtyczek są dostępne we wszystkich podprojektach bez stosowania logiki wtyczki do samego projektu głównego.Kotlin
// Root build.gradle.kts file plugins { alias(libs.plugins.kotlin.multiplatform) apply false // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) apply false }
Groovy
// Root build.gradle file plugins { alias(libs.plugins.kotlin.multiplatform) apply false // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) apply false }
Zastosuj wtyczkę w pliku kompilacji modułu biblioteki KMP. Otwórz plik
build.gradle.kts
w module biblioteki KMP i zastosuj wtyczkę u góry pliku w blokuplugins
:Kotlin
// Module-specific build.gradle.kts file plugins { alias(libs.plugins.kotlin.multiplatform) // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) }
Groovy
// Module-specific build.gradle file plugins { alias(libs.plugins.kotlin.multiplatform) // Add the following alias(libs.plugins.android.kotlin.multiplatform.library) }
Skonfiguruj platformę docelową KMP na Androida. Skonfiguruj blok Kotlin Multiplatform (
kotlin
), aby zdefiniować platformę docelową Androida. W blokukotlin
określ miejsce docelowe na Androidzie za pomocąandroidLibrary
:Kotlin
kotlin { androidLibrary { namespace = "com.example.kmpfirstlib" compileSdk = 33 minSdk = 24 withJava() // enable java compilation support withHostTestBuilder {}.configure {} withDeviceTestBuilder { sourceSetTreeName = "test" } compilations.configureEach { compilerOptions.configure { jvmTarget.set( org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 ) } } } sourceSets { androidMain { dependencies { // Add Android-specific dependencies here } } getByName("androidHostTest") { dependencies { } } getByName("androidDeviceTest") { dependencies { } } } // ... other targets (JVM, iOS, etc.) ... }
Groovy
kotlin { androidLibrary { namespace = "com.example.kmpfirstlib" compileSdk = 33 minSdk = 24 withJava() // enable java compilation support withHostTestBuilder {}.configure {} withDeviceTestBuilder { it.sourceSetTreeName = "test" } compilations.configureEach { compilerOptions.options.jvmTarget.set( org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 ) } } sourceSets { androidMain { dependencies { } } androidHostTest { dependencies { } } androidDeviceTest { dependencies { } } } // ... other targets (JVM, iOS, etc.) ... }
Zastosuj zmiany. Po zastosowaniu wtyczki i skonfigurowaniu bloku
kotlin
zsynchronizuj projekt Gradle, aby zastosować zmiany.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy JavaScript jest wyłączony.
- Konfigurowanie środowiska
- Dodawanie modułu KMP do projektu