Repolode
facebookincubator

facebookincubator/fbjni

Una biblioteca auxiliar de C++ que simplifica las llamadas a código Java desde código nativo mediante la Java Native Interface (JNI).

Estrellas
337
Forks
53
Issues abiertos
17
Último commit
hace 7 horas

¿Qué es?

fbjni envuelve la Java Native Interface de bajo nivel con utilidades de C++, para que el código nativo pueda llamar a métodos, campos y constructores de Java con menos código repetitivo. Gestiona automáticamente la vida útil de las referencias locales y globales de JNI y traduce excepciones entre Java y C++ en ambas direcciones, de modo que los desarrolladores no tengan que comprobar el estado de las excepciones después de cada llamada.

La biblioteca también se encarga de la conversión de tipos. Los descriptores de métodos se infieren a partir de las firmas de C++, y tipos comunes como std::string se convierten a tipos Java y viceversa. Las clases Java se representan mediante structs de C++ que derivan de una plantilla JavaClass y declaran su descriptor Java.

Las utilidades se crearon para dar soporte a código móvil multiplataforma en Android, pero el diseño no tiene dependencias específicas de Android y funciona con cualquier máquina virtual Java compatible con JNI. El proyecto incluye documentación sobre la configuración de compilaciones para Android, una guía rápida de las funciones y los motivos para usar un wrapper de JNI.

Funciones clave

  • 01Gestión automática de referencias locales y globales de JNI.
  • 02Traducción bidireccional de excepciones de Java y C++.
  • 03Inferencia de descriptores de métodos a partir de firmas de funciones de C++.
  • 04Conversión automática entre std::string y cadenas de Java.
  • 05Representación de clases Java mediante tipos de C++ a través de una plantilla JavaClass.

Casos de uso

  • Llamar a API de Java desde una base de código C++ compartida en una aplicación Android.
  • Integrar módulos nativos de C++ en cualquier aplicación JVM que use JNI.
  • Reducir el conteo manual de referencias y las comprobaciones de excepciones en código JNI existente.

Inicio rápido

  1. 1

    Consulta la referencia rápida en docs/quickref.md para ver ejemplos que puedes copiar y pegar

  2. 2

    Sigue la guía de configuración de compilación de Android en docs/android_setup.md

En colecciones

Temas

Preguntas frecuentes

¿Qué es fbjni?
Una biblioteca auxiliar de C++ que simplifica las llamadas a código Java desde código nativo mediante la Java Native Interface (JNI). fbjni envuelve la Java Native Interface de bajo nivel con utilidades de C++, para que el código nativo pueda llamar a métodos, campos y constructores de Java con menos código repetitivo. Gestiona automáticamente la vida útil de las referencias locales y globales de JNI y traduce excepciones entre Java y C++ en ambas direcciones, de modo que los desarrolladores no tengan que comprobar el estado de las excepciones después de cada llamada.
¿fbjni es gratuito? ¿Qué licencia tiene?
fbjni es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿fbjni sigue mantenido?
Mantenimiento activo. El último commit de fbjni fue el 22 oct 2026.
¿Para qué puedo usar fbjni?
Llamar a API de Java desde una base de código C++ compartida en una aplicación Android. Integrar módulos nativos de C++ en cualquier aplicación JVM que use JNI. Reducir el conteo manual de referencias y las comprobaciones de excepciones en código JNI existente.
¿Cómo se instala fbjni?
Consulta la referencia rápida en docs/quickref.md para ver ejemplos que puedes copiar y pegar Sigue la guía de configuración de compilación de Android en docs/android_setup.md
¿Dónde consigo fbjni?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/facebookincubator/fbjni

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados