基本JNI搭建

1、編寫Java代碼

首先我們需要編寫自己的java代碼

public class Hello {
    static{
        System.loadLibrary("hello-jni");
    }

    public native String sayHello();
}

 

2、把寫好的類轉換成.class文件,在src目錄下運行

src>javac com/example/jnitest/Hello.java

會在com/example/jnitest/目錄下生成Hello.class文件

3、把.class文件轉換成頭文件

src>javah com.example.jnitest.Hello

會在src/目錄下生成com_example_jnitest_Hello.h文件,如果提示找不到類則添加"-cp ./"

native方法名稱轉換詳解:轉換後的native方法全部以Java_爲前綴,接着以類的全名標識(包名+類名),以下劃線爲分隔符(“_”),最後就是方法的名稱

4、編寫.c文件,包含第三步生成的.h文件,並實現裏面的方法

#include "com_example_jnitest_Hello.h"
JNIEXPORT jstring JNICALL Java_com_example_jnitest_Hello_sayHello  (JNIEnv *env, jobject object)
{
    return (*env)->NewStringUTF(env, "JNITest Native String");
}

 

5、安裝NDK,其實就是找個地方解壓。

6、編譯.h和.c文件

在工程目錄下建一個jni目錄,將.h和.c文件都放到這目錄下,再在jni目錄下建一個android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := bigdata-jni
LOCAL_SRC_FILES := com_example_fullram_BigDataOccupy.c

include $(BUILD_SHARED_LIBRARY)

 

在工程目錄下運行

JNITest>E:\android-ndk-r8\ndk-build.cmd

如果沒有編譯錯誤,會在libs/armeabi/目錄下生成libbigdata-jni.so

7、在工程調用,新建Hello的實例,調用方法。

new Hello().sayHello()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章