# JNI 原生代码简介
来源:互联网 发布:mac taupe亚洲人试色 编辑:程序博客网 时间:2024/04/28 06:23
仍然从hello-jni开始。JNI (Java Native Interface)Java原生接口技术实现java应用程序和原生代码间的通信 声明原生方法 : `public native String stringFromJNI();` 在共享库中载入原生模块: java.lang.System类提供了两个静态方法,load和loadlibrary用于在运行时加载共享库```static{ System.loadLibrary("hello-jni");}```Android上的Java库路径包含/vendor/lib和/system/lib,loadLibrary在扫描库路径时,一旦发现同名的库,立即加载共享库。因为Java库路径的第一组目录是Android系统目录,为了避免与系统库命名冲突,建议为每个共享库选唯一的名字。在C/C++中实现原生方法
#include <string.h> #include <jni.h> ... Jstring Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv * env, jobject thiz) { return (*env)->NewStringUTF(env,"Hello from JNI!"); } Java_com_example_hellojni_HelloJni_stringFromJNI包括包名+类名+函数名 这么复杂的名字可以由javah工具来自动生成
方法声明 Jstring Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv * env, jobject thiz) 第一个参数JNIEnv是指向可用JNI函数表的接口指针;第二个参数jobject是HelloJni 类实例的java对象引用。
-- JNI标准规范: 遵守JNI标准规函数命名方式, JNI中方法命名为 Java_包
名_类名_方法名 , 可以使用javah生成签名头文件, 靠这种方式实现
Native方法 与 JNI方法之间的映射关系, 即应用直接与框架层进行交互,
这种规范常用与应用开发;
C语言方法命名JNI接口规则 : Java_完整包名类名_方法名(JNIEnv *env, jobject thiz), 注意完整的类名包名中包名的点要用 _ 代替;
1 0
- # JNI 原生代码简介
- 用JNI实现与原生代码通信
- Jni实现与原生代码通信
- Android jni编程浅入深出之-- 与原生代码通信
- android NDK 使用JNI实现与原生代码通信
- jni中java与原生代码通信规则
- JNI简介
- JNI简介
- jni简介
- JNI简介
- JNI 简介
- JNI简介
- JNI简介
- JNI简介
- jni 简介
- jni简介
- JNI简介
- JNI简介
- oracle sql developer 启动选择java.exe路径 设置错误了,如何重新设置??
- substring
- SSH出现问题的解决方法
- 暑期工作日志-Day6
- php之魔术常量、类常量
- # JNI 原生代码简介
- Android水波纹特效的简单实现
- ORACLE中%TYPE和%ROWTYPE的使用
- Sqoop-1.4.6 Merge源码分析与改造使其支持多个merge-key
- 127. Word Ladder (很重要!!!)
- 稳定排序和不稳定排序分析
- C++string类(外加next_permutation函数)
- mysql可视化工具官方教程
- NSCTF crypto100