关于JNI
来源:互联网 发布:网络名字伤感两个字 编辑:程序博客网 时间:2024/06/07 05:24
我们在activity中声明了一个native方法,
static { System.loadLibrary("native-lib"); }public native String stringFromJNI();
在native-lib.cpp的源文件中
#include <jni.h>#include <string>extern "C"//JNIEXPORT jstring JNICALL起一个链接作用,固定写法,jstirng是一个返回类型,JNIEXPORT jstring JNICALLJava_com_great_1xiaohaihai_myffmpeg_MainActivity_stringFromJNI( JNIEnv *env, jobject) { //标准模板库(STL)提供了一个std::string类,其是std::basic_string的一个特化,并支持比较、连接、遍历、STL算法、复制、赋值等等操作,这个类定义在<string>头文件中。#include <string> //注意这里不是string.h string.h是C字符串头文件 //C ++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),c_str()返回一个以‘’结尾的字符数组,而copy()则把字符串的内容复制或写入既有的c_string或 字符数组内。 std::string hello = "Hello from C++"; return env->NewStringUTF(hello.c_str());}
当把动态库加载进DVM的时候,通过JNIEnv *指针去查找Java Native方法对应的JNI方法
我们知道Java的数据类型是跟C/C++的数据类型是不一样的,而JNI是处于Java和Native本地库(大部分是用C/C++写的)中间的一层,JNI对于两种不同的数据类型之间必须做一种转换,所以在JNI跟Java之间就会有数据类型的对应关系。 在JNI中,提供了以下各种数据类型,可以分为原生类型和引用类型: 其与java端的数据类型对应如下表: java jnichar jcharbyte jbyteshort jshortint jintlong jlongfloat jfloatdouble jdoubleboolean jboolean
阅读全文
0 0
- 关于JNI
- 关于JNI
- 关于JNI
- 关于JNI
- 关于JNI
- 关于JNI (转载)
- 关于java的JNI
- 关于C++开发JNI
- 转关于JNI使用
- 关于JNI技术
- 关于Java的JNI
- 关于JNI杂记
- 关于JNI的解析
- 关于JNI 资源释放
- 关于JNI内存泄露问题
- 关于JNI的本地引用
- 关于jni 找不到so文件
- 关于JNI的一点整理
- Hadoop自定义实现Writable/WritableComparable接口的类方法及应用
- 贪心算法之活动安排
- 搭建一个可直接运营、可管理、安全可靠的互联网电视OTT-TV/IPTV平台
- 解决电脑打开office时每次配置很长时间的方法
- [Lintcode]带环链表
- 关于JNI
- Maven生成可以直接运行的jar包的多种方式
- 坑图
- MyEclipse安装JS代码提示(Spket插件)
- 大数据-零基础学习hadoop到上手工作线路指导(初级篇)
- Gson转换
- Kotlin Reference (十四) 委托类和委托属性
- 图像处理之常见二值化方法汇总
- Android中的MVP