#kotlin-multiplatform
#kotlin-мультиплатформенный
Вопрос:
Я хочу реализовать несколько вариантов использования, прежде чем переносить свой код бизнес-логики с JAVA на Kotlin / Multiplatform. Один из них использует код c . Есть ли возможность использовать код c в Kotlin / мультиплатформенном проекте на уровне commonMain? Или мне нужно написать слой-оболочку (например, JNI) для каждой платформы? Могу ли я получить какой-нибудь пример кода?
Большое спасибо!
Ответ №1:
Вызов C может быть сложным. Вам нужно будет иметь JNI в JVM, а в native вам нужно будет обернуть C с помощью C (или Objective-C), затем использовать cinterop, чтобы сделать это доступным для собственного компилятора Kotlin. Затем, в общем, вам нужно будет написать общую версию логики и реализовать ее на каждой платформе.
Kotlin(common)
|
/
/
Kt(jvm) Kt(native)
/
JNI C/ObjC
/
C C
В конечном итоге может быть прямое взаимодействие C с native, но не уверен, когда.