es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Android Kotlin con código nativo NDK C a WebAssembly con Kotlin Multiplatform

Como un principiante total en Kotlin Multiplatform, me pregunto si hay alguna manera de exportar (una parte de) una aplicación existente de Android que consiste en código Kotlin y código C (gráficos OpenCV y filtros y análisis propios, a través de Android NDK/JNI) a otras plataformas (en nuestro caso, WebAssembly) usando Kotlin Multiplatform.

Al intentar configurarlo, me quedé atrapado en la parte de “System.loadLibrary(“native-lib”)” para cargar la biblioteca nativa desde el código Kotlin. No hay nada como “System” para las otras plataformas, ya que es algo específico de Android.
¿Cuál sería el equivalente en otras plataformas o hay una forma más independiente de la plataforma para cargar la biblioteca C? ¿Es este enfoque completamente incorrecto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en Kotlin Multiplatform, hay algunas cosas a tener en cuenta al exportar una aplicación de Android existente que consta de código Kotlin y C a otras plataformas.

    En primer lugar, es posible utilizar Kotlin Multiplatform para compartir el código Kotlin entre diferentes plataformas. Sin embargo, el código C no se puede compartir y deberá ser reescrito para cada plataforma.

    En segundo lugar, no existe un equivalente directo a “System.loadLibrary(“native-lib”)” en otras plataformas, ya que es una característica específica de Android. En su lugar, deberá utilizar API específicas de la plataforma para cargar la biblioteca C.

    Por ejemplo, en Mac e iOS, puede utilizar las API del cargador de bibliotecas dinámicas proporcionadas por el sistema operativo. En Windows, puede utilizar la función LoadLibrary.

    Alternativamente, podría considerar el uso de WebAssembly para ejecutar el código C directamente en el navegador. Esto requeriría reescribir el código C para utilizar Emscripten, una herramienta que convierte C/C++ a WebAssembly.

    En resumen, si bien Kotlin Multiplatform se puede utilizar para compartir código Kotlin entre diferentes plataformas, no es posible compartir código C. Cargar la biblioteca C también requerirá el uso de API específicas de la plataforma.

Comments are closed.