Kotlin/Native-katsaus: kohteet, työkaluketju ja käännös
Tutustukaa käytettävissä oleviin Kotlin/Native -kohteisiin ja kääntäkää yksinkertainen CLI-binääri.
Kotlin/Native-katsaus: kohteet, työkaluketju ja käännös on ilmainen Kotlin Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Kotlin Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.
Mikä Kotlin/Native on
Kotlin/Native kääntää Kotlin-lähdekoodin suoraan natiiviksi konekoodiksi LLVM:n kautta ilman JVM- tai Dalvik-ajonaikaista ympäristöä. Tuloksena on itsenäinen binääri, joten kohdekoneeseen ei tarvitse asentaa JVM:ää.
Tuetut kohteet
Kotlin/Native tukee useita eri kohteita:
- macOS / iOS:
macosX64,macosArm64,iosX64,iosArm64,iosSimulatorArm64 - Linux:
linuxX64,linuxArm64 - Windows:
mingwX64 - Embedded / watchOS / tvOS: useita eri kohteita
Käännösputki
Kotlin/Native-käännösputki on seuraava: Kotlin-lähdekoodi → Kotlin IR (välikesitys) → LLVM IR → natiivibinääri. konanc-kääntäjä ohjaa tätä prosessia, mutta käytännössä käytätte aina Kotlin Multiplatform Gradle -laajennusta.
Natiivikohteen määrittäminen Gradlessa
Määritelkää Kotlin Multiplatform -projektissa natiivikohteet tiedostossa build.gradle.kts:
kotlin {
macosArm64("macos") {
binaries {
executable { entryPoint = "main" }
}
}
linuxX64("linux") {
binaries { executable { entryPoint = "main" } }
}
}Natiivikohteiden lähdejoukot
Natiivikohteet jakavat commonMain- ja commonTest-lähdejoukot muiden alustojen kanssa. Kohdekohtainen koodi sijaitsee esimerkiksi macosMain- tai linuxX64Main-lähdejoukoissa. Käyttäkää expect/actual-rakennetta alustakohtaisille rajapinnoille.
Tulostettavat binääritiedostotyypit
Kotlin/Native voi tuottaa useita binääritiedostotyyppejä:
executable— itsenäinen komentoriviohjelmastaticLib— staattinen kirjasto linkitettäväksi C/C++-projekteihinsharedLib— dynaaminen (.dylib / .so / .dll) kirjastoframework— Apple framework iOS- ja macOS-integraatioon
Natiivien testien suorittaminen
Suorittakaa natiivitestit komennolla ./gradlew macosArm64Test tai käyttäkää vastaavan kohteen tehtävää. Testit käännetään natiivibinaariksi ja suoritetaan isäntäkoneella — JVM:ää ei käytetä.
Ristiinkäännöksen rajoitukset
Kotlin/Native-ristiinkäännös on rajoitettua: Apple-kohteille voi kääntää vain macOS:ssä (Xcode vaaditaan). Linux- ja Windows-kohteet voidaan kääntää millä tahansa tuetulla isäntäalustalla. CI-putkissa käytetään Apple-kohteisiin yleensä macOS-agentteja.
klib-muoto
Kotlin/Native-kirjastot jaetaan .klib-tiedostoina, jotka ovat Kotlinin alustariippumaton kirjastomuoto. Riippuvuudet ratkaistaan .klib-tiedostoina ja linkitetään lopulliseen binääriin käännösaikana.
Kotlin/Native KMP:n iOS-sovelluksessa
Tavallisessa Kotlin Multiplatform Mobile (KMM) -projektissa jaettu koodi käännetään Apple-frameworkiksi, jonka Xcode linkittää iOS-sovellukseen. Swift- ja Objective-C-koodi kutsuu Kotlin-rajapintoja generoituja header-tiedostoja käyttäen.
Suorituskykyominaisuudet
Natiivibinaarit käynnistyvät heti ilman JVM:n käynnistystä, niiden muistijalanjälki on pienempi, ja ne sopivat komentorivityökaluihin, palvelinpuolen Linux-sovelluksiin sekä iOS:n ja macOS:n jaettuun logiikkaan. Pitkään käynnissä olevat JVM-sovellukset voivat JIT-optimointien ansiosta olla Nativea suorituskykyisempiä, mutta käynnistys- ja muistietujen ansiosta Native sopii moniin käyttötarkoituksiin paremmin.
Pikatarkistus
Millä Gradlen binääritiedostotyypillä Kotlin/Native tuottaa Apple-frameworkin käytettäväksi iOS:n Xcode-projektissa?
Kertaus: Kotlin/Native lyhyesti
Tärkeimmät opit:
- Kotlin/Native kääntää koodin LLVM:n kautta natiiviksi konekoodiksi — JVM:ää ei tarvita
- Tukee macOS-, iOS-, Linux-, Windows-, watchOS- ja tvOS-kohteita
- Määritelkää kohteet ja binääritiedostotyypit KMP Gradle -laajennuksessa
- Apple-kohteet vaativat macOS:n ja Xcoden; ristiinkäännöksellä on alustakohtaisia rajoituksia
- Kirjastot jaetaan
.klib-muodossa; iOS-integraatio toteutetaanframework-binaarin avulla
Opi Kotlin tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 51
- Oppitunnit
- 203
Usein kysytyt kysymykset
Onko oppitunti ”Kotlin/Native-katsaus: kohteet, työkaluketju ja käännös” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kotlin Academy-oppimispolun 3 oppituntia, myös oppitunnin “Kotlin/Native-katsaus: kohteet, työkaluketju ja käännös”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Kotlin/Native-katsaus: kohteet, työkaluketju ja käännös”?
Tutustukaa käytettävissä oleviin Kotlin/Native -kohteisiin ja kääntäkää yksinkertainen CLI-binääri. Harjoittelet Kotlin Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Kotlin Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Kotlin/Native-katsaus: kohteet, työkaluketju ja käännös”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Kotlin Academy-oppitunnilla?
Kyllä. Jokainen Kotlin Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Kotlin/Native-katsaus: kohteet, työkaluketju ja käännös
- Kotlin/Native-muistinhallinta: uusi MM
- C-yhteentoimivuus cinterop-työkalulla ja .def-tiedostoilla
- Kotlin/WASM: kääntäminen WebAssemblyksi selainta varten