O JNI também é reverenciado por seu recurso chamar a API para esgueirar -se em uma máquina virtual Java em aplicativos Java. Isso permite que os desenvolvedores invocem o código Java dentro do código do aplicativo nativo.
Se você passou algum tempo trabalhando com Java, provavelmente já encontrou os muitos problemas de desempenho que inevitavelmente surgem no seu caminho. Isso não é um problema quando você executa o mesmo código no idioma nativo, que pode ter mais dezoito vezes mais rápido quando lido em um modelo compilado. Além disso, você também pode usar rotinas de hardware desatualizadas/incompatíveis com códigos nativos em outros idiomas.
Este tutorial demonstrará como o código C/C ++ da máquina pode ser chamado de um aplicativo Java.
Pré -requisitos
Você precisará de algumas coisas para acompanhar este guia corretamente. Isso inclui o compilador Java, ou Javac.exe, junto com a JVM, bem como o gerador de método n nativo (javah.exe). Todos os três vêm embutidos no kit de desenvolvimento de software, então você é bom se tiver isso. Além desses três, você também precisará dos arquivos que definem o JNI, incluindo arquivos de cabeçalho nativos e arquivos completos da biblioteca.
E, claro, em um tutorial sobre a execução dos códigos C e C ++, também usaremos o compilador C para criar uma biblioteca compartilhada.
Componentes JNI
JNI é impulsionado principalmente por dois componentes, a saber, H e Javah. H é o componente do arquivo de cabeçalho que substitui os códigos nativos pelo código Java, enquanto Javah faz com que esse arquivo possa ser carregado para aplicativos de arquivos de cabeçalho de aplicativo por si só.
Invocando C/C ++ do código Java
Etapa 1: escrevendo o código em java
O código é escrito pela primeira vez em Java e é compatível com três condições. Primeiro, está escrito com o método nativo a ser invocado mais tarde. Em segundo lugar, ele deve carregar a biblioteca compartilhada da qual o código nativo faz parte e, por fim, deve invocar os métodos nativos.
Vamos usar este código para ilustrar mais:
Linhas de aviso 3 e 6; estas são as linhas em que os métodos nativos estão incluídos. O código que carrega as bibliotecas compartilhadas está localizado na linha 10, o que leva ao método que está sendo invocado entre as linhas 12 e 15.
Etapa 2: Compilar o código Java em ByteCode
O segundo passo tem a ver com a compilação do código Java. O compilador Javac pode fazer o trabalho aqui para nós; Basta emitir o comando abaixo:
$ javac exemplo1.JavaEtapa 3: Crie arquivos de cabeçalho C/C ++
Em seguida, os arquivos de cabeçalho do idioma nativo devem ser criados. Este cabeçalho arquivos alimenta as assinaturas dos códigos nativos.
Esses arquivos de cabeçalho podem ser criados com a ferramenta nativa de Javah, um gerador de stub C
Javah Exemplo1A saída a seguir deve retornar:
Etapa 4: escrevendo o código nativo
É aqui que vamos escrever o código C/C ++. Você deve observar todas as assinaturas que precisam se parecer com as declarações que fizemos na etapa 1.
A seguir, é apresentada uma implementação escrita em C Language:
Etapa 5: Crie uma biblioteca compartilhada
Uma biblioteca compartilhada pode ser criada com qualquer compilador. Como a biblioteca compartilhada contém o código nativo, teremos que criar um.
Etapa 6: inicie seu programa
Esta etapa envolve avaliar o código e identificar quaisquer problemas com o programa. Isso envolverá o ambiente de tempo de execução do Java, porque o código será executado na JVM principalmente.
Emitir o seguinte comando:
Java Exemplo1Deve voltar:
Então esse foi o nosso pequeno guia para iniciantes para usar a interface nativa Java. Esperamos que você tenha achado útil.
Aprender a trabalhar com o JNI é essencial para quem deseja desenvolver aplicativos Java, especialmente aplicativos Android para smartphones.