Repolode
facebookincubator

facebookincubator/fbjni

Uma biblioteca auxiliar em C++ que simplifica chamadas a código Java a partir de código nativo usando a Java Native Interface (JNI).

Estrelas
337
Forks
53
Issues abertas
17
Último commit
há 8 horas

O que é?

A fbjni envolve a Java Native Interface de baixo nível com helpers em C++, permitindo que o código nativo chame métodos, campos e construtores Java com menos código repetitivo. Ela gerencia automaticamente o ciclo de vida de referências locais e globais do JNI e traduz exceções entre Java e C++ nos dois sentidos, para que os desenvolvedores não precisem verificar o estado das exceções após cada chamada.

A biblioteca também cuida da conversão de tipos. Os descritores de métodos são inferidos a partir das assinaturas em C++, e tipos comuns, como std::string, são convertidos para e de tipos Java. Classes Java são mapeadas para structs em C++ que herdam de um template JavaClass e declaram seu descritor Java.

Os helpers foram criados para dar suporte a código móvel multiplataforma no Android, mas o projeto não tem dependências específicas do Android e funciona com qualquer Java VM compatível com JNI. O projeto inclui documentação sobre a configuração de builds para Android, uma referência rápida dos recursos e os motivos para usar um wrapper de JNI.

Recursos principais

  • 01Gerenciamento automático de referências locais e globais do JNI.
  • 02Tradução de exceções entre Java e C++ nos dois sentidos.
  • 03Descritores de métodos inferidos a partir das assinaturas de funções em C++.
  • 04Conversão automática entre std::string e strings Java.
  • 05Mapeamento de classes Java para tipos C++ por meio de um template JavaClass.

Casos de uso

  • Chamar APIs Java a partir de uma base de código C++ compartilhada em um app Android.
  • Incorporar módulos nativos em C++ a qualquer aplicação JVM que use JNI.
  • Reduzir a contagem manual de referências e as verificações de exceções em código JNI existente.

Início rápido

  1. 1

    Leia a referência rápida em docs/quickref.md para ver exemplos de uso que você pode copiar e colar

  2. 2

    Siga o guia de configuração da compilação do Android em docs/android_setup.md

Em coleções

Tópicos

Perguntas frequentes

O que é fbjni?
Uma biblioteca auxiliar em C++ que simplifica chamadas a código Java a partir de código nativo usando a Java Native Interface (JNI). A fbjni envolve a Java Native Interface de baixo nível com helpers em C++, permitindo que o código nativo chame métodos, campos e construtores Java com menos código repetitivo. Ela gerencia automaticamente o ciclo de vida de referências locais e globais do JNI e traduz exceções entre Java e C++ nos dois sentidos, para que os desenvolvedores não precisem verificar o estado das exceções após cada chamada.
fbjni é gratuito? Qual é a licença?
fbjni é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
fbjni ainda é mantido?
Manutenção ativa. O último commit de fbjni foi em 22 de out. de 2026.
Para que posso usar fbjni?
Chamar APIs Java a partir de uma base de código C++ compartilhada em um app Android. Incorporar módulos nativos em C++ a qualquer aplicação JVM que use JNI. Reduzir a contagem manual de referências e as verificações de exceções em código JNI existente.
Como instalar fbjni?
Leia a referência rápida em docs/quickref.md para ver exemplos de uso que você pode copiar e colar Siga o guia de configuração da compilação do Android em docs/android_setup.md
Onde consigo fbjni?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/facebookincubator/fbjni

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados