1.简介
JNI是Java Native Interface的缩写,它的设计目的是:
The standard Java class library may not support the platform-dependent features needed by your application.
You may already have a library or application written in another programming language and you wish to make it accessible to Java applications
You may want to implement a small portion of time-critical code in a lower-level programming language, such as assembly, and then have your Java application call these functions
2.JNI的书写步骤 编写带有native声明的方法的java类
使用javac命令编译所编写的java类
使用javah ?jni java类名生成扩展名为h的头文件
使用C/C++实现本地方法
将C/C++编写的文件生成动态连接库
ok
1) 编写java程序:
这里以HelloWorld为例。
代码1:
class HelloWorld {
public native void displayHelloWorld();
static {
System.loadLibrary("hello");
}
public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}
}
声明native方法:如果你想将一个方法做为一个本地方法的话,那么你就必须声明改方法为native的,并且不能实现。其中方法的参数和返回值在后面讲述。
Load动态库:System.loadLibrary("hello");加载动态库(我们可以这样理解:我们的方法displayHelloWorld()没有实现,但是我们在下面就直接使用了,所以必须在使用之前对它进行初始化)这里一般是以static块进行加载的。同时需要注意的是System.loadLibrary();的参数“hello”是动态库的名字。
main()方法
2) 编译没有什么好说的了
javac HelloWorld.java
3) 生成扩展名为h的头文件
javah ?jni HelloWorld
头文件的内容:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include
分享到:
相关推荐
JNI(Java native interface)入门知识
通过这个"JNI入门Demo3.0",我们可以深入理解动态注册Native函数的概念和实现,从而在实际项目中更灵活地使用JNI。需要注意的是,动态注册虽然方便,但也需要谨慎处理,因为它可能会引入运行时错误,如方法签名不...
### JNI入门之HelloWorld(一)详解 #### 一、引言 JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码与其他语言写的代码进行交互。JNI接口提供了若干公共服务,并为Java虚拟机和本机应用程序或...
### JNI入门教程详解:HelloWorld篇 #### 一、引言与背景 Java Native Interface (JNI) 是Java语言与本地代码交互的桥梁,允许Java应用调用C或C++等本地语言编写的代码,这对于扩展Java功能、提高性能或集成已有非...
Android Studio的JNI(Java Native Interface)开发入门教程 JNI,全称为Java Native Interface,是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。JNI在Android开发中扮演着重要角色,尤其当...
这个"Android JNI入门Demo"是一个适合初学者了解和学习JNI基础操作的实践项目。 在Android开发中,JNI的应用场景广泛,例如:提升性能的关键算法实现、调用系统库、访问硬件设备、游戏开发中的图形渲染等。下面将...
Java Native Interface的入门级学习demo,完美的解决了java.library.path中找不到动态库的问题,并解决了windows和linxu的兼容问题,使得这个项目打包成jar包后,能够直接在windows或Linux的java代码中调用
### JNI入门初级教程知识点概述 本教程旨在为初学者提供JNI(Java Native Interface)的基础知识与实践指导。JNI是Java平台的一部分,它允许Java代码与其他语言编写的代码进行交互,尤其是C和C++。这对于利用现有C...
JNI入门与编程实现
通过学习和实践这个JNI入门Demo1.0,你可以掌握JNI的基本用法,包括声明`native`方法、生成头文件、编写C++代码以及构建和加载动态库。这将为你进一步探索Android的原生开发打下基础,比如使用C++提升性能、接入第三...
本教程"JNI入门Demo2.0"将带你深入理解JNI的使用,特别是如何通过JNI反调用Java方法。 1. **JNI基础知识**: - JNI接口定义了Java虚拟机(JVM)和本地代码之间的通信规范,包括函数调用、数据类型转换、异常处理等...
### Android下JNI入门详解 #### 一、JNI与VM简介 JNI(Java Native Interface)作为Android平台上连接Java层与C/C++层的关键桥梁,在开发过程中起着至关重要的作用。通过JNI,开发人员能够实现Java与C/C++代码之间...
这篇“JNI入门教程之HelloWorld篇”文档将引导我们了解如何使用JNI来开发一个简单的应用程序。 首先,我们需要明白JNI的核心概念:本地方法接口。它提供了一种方式,让Java虚拟机(JVM)能够调用非Java语言编写的...
Java JNI(Java Native Interface)是Java平台中一个重要的特性,它允许Java代码和其他语言写的代码进行交互。JNI自Java 1.1版本引入以来,已经成为Java开发者与底层系统交互的重要工具,尤其在需要调用C/C++库或者...
本教程将通过一个基础的JNI入门案例来介绍如何在Android应用中使用NDK和JNI。 首先,我们需要了解JNI的基本结构。JNI主要包含以下几个部分: 1. **本地方法声明**:在Java代码中,我们需要声明一个本地方法,这个...
### JNI入门知识点详解 #### 一、JNI简介与应用场景 JNI (Java Native Interface) 是 Java 平台标准的一部分,它允许 Java 代码和其他语言写的代码进行交互。JNI 主要用于以下场景: - **性能优化**:某些算法或...
#### Java基础知识——JNI入门介绍(下) 1. **概念回顾**:回顾上一节中介绍的基础概念。 2. **深入讲解**:深入讲解JNI的工作原理和技术细节。 3. **实践案例**:通过实践案例来巩固所学知识。 #### Java调用...
本教程将带你入门JNI,了解如何在Java中调用C代码,以及C代码如何回调Java。 首先,我们要创建一个Java类,声明一些本地方法(native methods)。本地方法是Java方法,但其实现是在C或C++中完成的。例如: ```java...
通过以上步骤,你已经成功实现了Android Studio中的JNI编程入门。然而,这只是基础,实际开发中可能需要处理更复杂的情况,如多线程、内存管理、错误处理等。同时,CMakeLists.txt作为现代的构建系统,提供了更多...