Kotlin Academy · Oppitunti

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.

Oppitunti 1/413 vaihetta

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 komentoriviohjelma
  • staticLib — staattinen kirjasto linkitettäväksi C/C++-projekteihin
  • sharedLib — dynaaminen (.dylib / .so / .dll) kirjasto
  • framework — 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 toteutetaan framework-binaarin avulla
Aloita maksutta

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

  1. Kotlin/Native-katsaus: kohteet, työkaluketju ja käännös
  2. Kotlin/Native-muistinhallinta: uusi MM
  3. C-yhteentoimivuus cinterop-työkalulla ja .def-tiedostoilla
  4. Kotlin/WASM: kääntäminen WebAssemblyksi selainta varten
← Takaisin: Kotlin Academy