关于Java的JNI
来源:互联网 发布:域名在那里续费 编辑:程序博客网 时间:2024/05/18 02:20
JNI的基本概念
JNI的使用场合
Android中的JNI模型
JNI使用模型
基本数据类型转化
引用数据类型转化
关于JNI函数的注册
静态注册:
1.创建一个包含本地方法的类
package com;
public class MyJNI{
public native void fun();
}
2.编译包含本地方法的类,生成一个字节码文件
javac MyJNI.java
3.定位到com文件夹外,执行 javah com.MyJNI 生成头文件。
4.实现头文件
创建出.c文件。实现头文件中声明的函数。
5.生成动态链接库(.so文件)
gcc -fPIC -I /home/ubuntu/jdk/include -I /home/ubuntu/jdk/include/linux -shared -o libMy.so MyJNI.c
6.创建测试类。调用本地方法。
import com.MyJNI
public class Test{
static{
System.loadLibrary("My");
}
public static void main(String args[]){
MyJNI myJni = new MyJNI();
myJni.fun();
}
}
7.编辑测试类,生成Test.class文件
运行文件 java -Djava.library.path=. Test
public double get(String s, char c){};
(Ljava/lang/String;C)D
静态注册之Java调c
测试代码1
测试代码1讲解
测试代码1
将C代码生成.so库与调用.so库
关于JNI函数的静态注册
动态注册之调c
关于JNINativeMethod结构体
编码签名:
JNIEnv结构体
注:关于JNIEnv结构体在jdk1_6.0_45 目录下去查找一下!
测试代码2
访问java中成员变量的步骤
C代码访问Java代码的实例域
C代码访问Java代码的实例域
代码讲解
访问Java中静态变量的步骤
C代码调用Java代码
测试代码3
全局引用与局部引用
局部引用
局部引用的示例如下:
全局引用
全局引用的示例如下:
- 关于java的JNI
- 关于Java的JNI
- 关于JAVA中JNI的应用
- 关于JAVA中JNI的应用 <转>
- 关于JNI的解析
- 关于JAVA和Android的JNI的使用
- 关于java的JNI和android的NDK释疑
- 关于JNI 和JAVA 编码的问题小结
- 关于java jni编译javac javah的问题
- jni关于从java端调用C++的问题
- Java编程--关于JNI你应该知道的一切
- Java编程--关于JNI你应该知道的一切
- 关于Android调用JNI出现的 java.lang.UnsatisfiedLinkError
- 关于如何编写与调用java的JNI程序
- 关于java的 native方法及JNI实例
- Android中关于JNI 的学习(三)在JNI层访问Java端对象
- Android中关于JNI 的学习(三)在JNI层访问Java端对象
- Java的Jni编写
- 如何成为一个编程高手
- oracle分析函数——over
- 二分查找算法
- 个人简历
- 关于Java的多态
- 关于Java的JNI
- Linux进程与线程之二
- Linux进程与线程之三
- Linux进程与线程之四
- Android开发环境搭建
- linq查询并分页
- Linux进程与线程之五
- android studio如何做JNI开发
- Linux网络编程之一