Articles of jni

Operaciones de archivos en Android NDK

Estoy usando Android NDK para hacer una aplicación principalmente en C por razones de rendimiento, pero parece que las operaciones de archivos como fopen no funcionan correctamente en Android. Cada vez que bash usar estas funciones, la aplicación falla. ¿Cómo creo / escribo en un archivo con el NDK de Android?

¿Cómo comstackr la biblioteca dinámica para una aplicación JNI en Linux?

Estoy usando Ubuntu 10.10 Entonces eso es lo que hice. Hello.java : class Hello { public native void sayHello(); static { System.loadLibrary(“hellolib”); } public static void main(String[] args){ Hello h = new Hello(); h.sayHello(); } } Luego ejecuté los siguientes comandos: dierre@cox:~/Scrivania/provajni$ javac Hello.java dierre@cox:~/Scrivania/provajni$ javah -jni Hello Hello.class y Hello.h . Hello.h : /* […]

¿Convertir de char firmado a char sin signo y viceversa?

Estoy trabajando con JNI y tengo una matriz de tipo jbyte, donde jbyte se representa como un carácter firmado que va de -128 a 127. Los jbytes representan píxeles de imagen. Para el procesamiento de imágenes, generalmente queremos que los componentes de píxel varíen de 0 a 255. Por lo tanto, quiero convertir el valor […]

¿Utiliza JNI en lugar de JNA para llamar al código nativo?

JNA parece un poco más fácil de usar para llamar al código nativo en comparación con JNI. ¿En qué casos usarías JNI sobre JNA?

Java – Cargando dlls por una ruta relativa y esconderlos dentro de un contenedor

PARTE 1 Estoy desarrollando una aplicación Java que debería lanzarse como un contenedor. Este progtwig depende de librerías externas de C ++ llamadas por JNI. Para cargarlos, utilizo el método System.load con una ruta absoluta y esto funciona bien. Sin embargo, realmente quiero “esconderlos” dentro del JAR, así que he creado un paquete para recolectarlos. […]

Administrar dependencias de DLL con Maven

Tengo un progtwig Java con Maven administrando sus dependencias. Una de esas dependencias es un contenedor JNI para otro progtwig. Maven se encarga de la referencia al archivo JAR relevante, pero yo mismo estoy jugando con el archivo DLL. ¿Hay una buena manera de que Maven maneje la DLL también? Idealmente, me gustaría tener la […]

Al llamar al método nativo dos veces de una biblioteca de terceros en una actividad, la aplicación de Android se cierra

He integrado dos bibliotecas nativas (.so) en mi aplicación. Las bibliotecas comstackn bien y puedo cargarlas en mi aplicación también. La primera vez que invoco un método nativo de una biblioteca funciona bien, pero si vuelvo a llamar al mismo método en la Actividad, la aplicación se apaga. El problema que estoy enfrentando es exactamente […]

¿Qué tiene que hacer una JVM cuando llama a un método nativo?

¿Cuáles son los pasos habituales que el tiempo de ejecución de JVM debe realizar cuando llama a un método Java declarado como native ? ¿Cómo implementa un HotSpot 1.8.0 JVM una llamada de función JNI? ¿Qué pasos de verificación están involucrados (por ejemplo, excepciones no controladas después del retorno?), ¿Qué contabilidad tiene que realizar la […]

¿Debería llamar a ReleaseStringUTFChars si GetStringUTFChars devolvió una copia?

El libro “Essential JNI: Java Native Interface” de Rob Gordon contiene el siguiente ejemplo de código para convertir un jstring en una cadena C: const char* utf_string; jboolean isCopy; utf_string = env->GetStringUTFChars(str, &isCopy); /* … use string … */ if (isCopy == JNI_TRUE) { env->ReleaseStringUTFChars(str, utf_string); } Tenga en cuenta que solo llama a ReleaseStringUTFChars […]

¿Llamar al código C # de Java?

¿Alguien tiene una buena solución para integrar algún código C # en una aplicación java? El código es pequeño, así que podría volver a escribir en Java, pero prefiero volver a usar el código si es posible. No te repitas, etc. Además, sé que puedo exponer el C # como un servicio web o lo […]