一. 把java中的string 转化成 c中的char数组
/**
*Jstring2CStr 把java中的string 转化成 c中的char数组.
*jstring jstr 要被转化的java string
*char* 代表的是字符串数组名称(字符串数组的首地址)
*/
char* Jstring2CStr(JNIEnv* env, jstring j...
分类:
其他好文 时间:
2015-06-04 15:44:40
阅读次数:
135
Java调用c++的核心是变量类型的转换,java的int与c++中的int是一样的,转换比较简单。而想java中的String,处理就复杂一些。JNIEXPORT jstring JNICALL Java_com_dd_lib_ChineseToPinyin (JNIEnv *env, jclas...
分类:
编程语言 时间:
2015-05-04 22:02:35
阅读次数:
133
(jstring与char*的转换)JNIEXPORT void JNICALL Java_command_Cmd_Command (JNIEnv * env, jobject o, jstring command) { char* t; t = (char*)e...
分类:
其他好文 时间:
2015-04-14 12:36:54
阅读次数:
165
JNI开发的流程1.先在java代码里面声明一个native的方法public native String helloFromC();2.在Eclipse的工程目录下创建一个文件夹,名称为jni。3.编写c代码,按照规范编写jstring Java_com_itheima_hellojni_main...
分类:
移动开发 时间:
2015-04-08 22:53:54
阅读次数:
145
JNI(Java Native Interface)_03
c/c++区别
jni调用:
* c: jstring str = (*env)->NewStringUTF(env,getHello());
* c++:jstring str = (env)->NewStringUTF(getHello());
* 区别如下:
* 1,c++中把(*env) 的\*号去掉
* 2...
分类:
编程语言 时间:
2015-04-03 17:29:29
阅读次数:
207
JNI开发中,java与c代码交互的时候通常有String和char*的转换,但是请注意,这两者不是一类。
找了个工具方法,作为备忘。
char* Jstring2CStr(JNIEnv* env, jstring jstr)
{
char* rtn = NULL;
jclass clsstring = (*env)->FindClass...
分类:
编程语言 时间:
2015-03-20 16:33:04
阅读次数:
199
相关概念
什么是jni
关于nkd
什么是交叉编译
C/C++语言常见术语
库函数
头文件
函数库
HelloWorld
Java调用CC方法
CC方法调用Java方法
相关api
示例
数据类型的对应
jstring转换char
char转换jstring
C与C++中JNI实现的区别
JNIEnv
方法调用的区别
Androidmk说明
绕过JNI直接调用C函数
中文乱码问题
解决方法名冲突
注册JNI函数
静态注册
动态注册...
分类:
其他好文 时间:
2014-12-29 09:01:01
阅读次数:
257
JNI把Java中的所有对象当作一个C指针传递到本地方法中,这个指针指向JVM中的内部数据结构,而内部的数据结构在内存中的存储方式是不可见的。只能从JNIEnv指针指向的函数表中选择合适的JNI函数来操作JVM中的数据结构。第三章的示例中,访问java.lang.String对应的JNI类型jstring时,没有像访问基本数据类型一样直接使用,因为它在Java是一个引用类型,所以在本地代码中只能通过GetStringUTFChars这样的JNI函数来访问字符串的内容。...
分类:
其他好文 时间:
2014-12-24 01:18:30
阅读次数:
259
当我们在调用一个Java native方法的时候,方法中的参数是如何传递给C/C++本地函数中的呢?Java方法中的参数与C/C++函数中的参数,它们之间是怎么转换的呢?我猜你应该也有相关的疑虑吧,咱们先来看一个例子,还是以HelloWorld为例:
HelloWorld.java:
package com.study.jnilearn;
class MyClass {}
public...
分类:
编程语言 时间:
2014-12-20 23:31:23
阅读次数:
447
char* Jstring2CStr(JNIEnv* env, jstring jstr){ char* rtn = NULL; jclass clsstring = (*env)->FindClass(env,"java/lang/Strin...
分类:
其他好文 时间:
2014-12-19 01:54:47
阅读次数:
171