cinterop con le librerie C
Colleghi una dipendenza C per usarla nel codice condiviso.
cinterop con le librerie C è una lezione Kotlin Multiplatform Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Kotlin Multiplatform Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kotlin Multiplatform Academy include 4 lezioni in totale.
Accedere al codice C
A volte il codice necessario si trova in una semplice libreria C. Kotlin/Native può chiamarla direttamente tramite uno strumento chiamato cinterop. 🔌
Cosa produce cinterop
cinterop legge gli header C e genera i binding Kotlin. Dopodiché, le funzioni e i tipi C appaiono come normali dichiarazioni Kotlin che può chiamare.
Il file .def
Descriva la libreria in un piccolo file def: quali header leggere e quale libreria collegare. Questa è la ricetta seguita da cinterop.
headers = mylib.h
package = mylibIntegrarlo in Gradle
All'interno del blocco kotlin registri una voce cinterop per il target. Gradle esegue quindi lo strumento e aggiunge i binding generati alla compilazione.
cinterops.create("mylib")Chiamare una funzione C
Una volta generata, una funzione C è semplicemente una funzione Kotlin. La importi dal package definito nel file def e la chiami come qualsiasi altra funzione condivisa.
import mylib.compute
val r = compute(21)I puntatori C diventano CPointer
Un puntatore C grezzo corrisponde a CPointer in Kotlin. È tipizzato, quindi il compilatore sa a cosa punta, invece di lasciarla con un semplice indirizzo.
Memoria da gestire manualmente
C non libera le risorse al posto suo. Allochi la memoria all'interno di un blocco memScoped, così Kotlin rilascia automaticamente la memoria nativa quando il blocco termina.
memScoped {
val buf = allocArray<ByteVar>(16)
}Le stringhe attraversano il confine
Usi gli helper per convertire le stringhe tra Kotlin e C. Una String Kotlin diventa un buffer C con cstr e viene riconvertita quando legge i risultati.
Tipi opachi e struct
Le struct C corrispondono a classi Kotlin con accesso ai campi. Un tipo opaque che non ispeziona mai è semplicemente un puntatore da passare direttamente alla libreria.
Mantenerlo nei target nativi
I binding cinterop esistono solo per i target Kotlin/Native, come iOS. Racchiuda le chiamate dietro expect/actual, così commonMain resta indipendente dalla piattaforma.
Racchiudere, poi esporre
Nasconda i puntatori e memScoped dietro una API Kotlin intuitiva. Chi effettua le chiamate usa tipi puliti e non accede mai direttamente ai dettagli C grezzi.
Controllo rapido
Un controllo rapido sulla gestione della memoria C da Kotlin.
Riepilogo: cinterop
Ha visto che un file def insieme a Gradle genera binding Kotlin per una libreria C, che i puntatori corrispondono a CPointer e che memScoped gestisce la memoria nativa. 🎉
Impara Kotlin con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «cinterop con le librerie C» è gratuita?
Sì — il testo completo di «cinterop con le librerie C» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Kotlin Multiplatform Academy, passa a CoddyKit PRO. Il corso Kotlin Multiplatform Academy include 4 lezioni in totale.
Cosa imparerò in «cinterop con le librerie C»?
Colleghi una dipendenza C per usarla nel codice condiviso. Eserciti Kotlin Multiplatform Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Kotlin Multiplatform Academy?
Non è richiesta alcuna esperienza precedente. Kotlin Multiplatform Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «cinterop con le librerie C»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Kotlin Multiplatform Academy?
Sì. Ogni lezione Kotlin Multiplatform Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Usare i framework Apple da Kotlin
- Memoria e ARC in Kotlin/Native
- cinterop con le librerie C
- Avvolgere in modo pulito un SDK nativo