Android NDK开发学习(五)

Android NDK开发学习(五):JNI数据类型

调用一个Java native方法的时候,方法中的参数需要传给C/C++本地函数中。

首先可以看之前的demo,stringFromJNI方法中传入一个String类型参数。

public class GetString {
    
	public native String stringFromJNI(String string);
	
}
接下来是com_example_jnitest_GetString.h文件中的接收
#include <jni.h>
/* Header for class com_example_jnitest_GetString */

#ifndef _Included_com_example_jnitest_GetString
#define _Included_com_example_jnitest_GetString
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_example_jnitest_GetString
 * Method:    stringFromJNI
 * Signature: (Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_example_jnitest_GetString_stringFromJNI
  (JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}
#endif
#endif
从头文件函数的原型可以得知,stringFromJNI方法中形参的数据类型自动转换成了JNI中相应的数据类型(String ····> jstring)

剩余的类型就不一一的赘述了。可以参考下表。



Android NDK开发学习(五)_第1张图片


你可能感兴趣的:(eclipse,android,NDK)