1. 首页
  2. 移动开发
  3. Android
  4. JNI在Android平台的应用教程

JNI在Android平台的应用教程

上传者: 2024-07-05 17:33:52上传 PPT文件 1.94MB 热度 8次

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

下载地址
用户评论