JNI在Android平台的应用教程
JNI(Java Native Interface)是Java程序与C/C++代码交互的一种方式。以下是一个简单的示例,展示了如何在Android平台上使用JNI:
package com.lucyfyr;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class HelloWorld extends Activity {
/** 在Activity创建时调用 */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.v(\"dufresne\", printJNI(\"Hello, World!\"));
}
/* C/C++库中声明的函数 */
static {
// 加载库文件
System.loadLibrary(\"HelloWorldJni\");
}
/* 声明原生函数,参数为String类型,返回值为String类型 */
private native String printJNI(String inputStr);
}
在C/C++中实现上述Java代码中的printJNI()函数:
#include \"jni.h\"
extern \"C\" {
JNIEXPORT jstring JNICALL Java_com_lucyfyr_HelloWorld_printJNI(JNIEnv *env, jobject obj, jstring inputStr) {
const char* str = env->GetStringUTFChars(inputStr, 0);
std::stringstream ss;
ss << \"Hello, \")\" << str << \"!\";
jstring outputStr = env->NewStringUTF(ss.str().c_str());
env->ReleaseStringUTFChars(inputStr, str);
return outputStr;
}
}
介绍了在Android平台上使用JNI的基本步骤,包括Java代码和C/C++库的编写。通过这个示例,读者可以了解如何在Android应用中调用原生函数,并展示如何处理字符串参数和返回值。
标签:Android, JNI, Java Native Interface
下载地址
用户评论