1、定义native方法并加载动态链接库:

01beae47119018c38509c75f648e1d75.png

public class HelloJni extends Activity

{

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

TextView tv = new TextView(this);

tv.setText( stringFromJNI() );

setContentView(tv);

}

public native String stringFromJNI();

public native String unimplementedStringFromJNI();

static {

System.loadLibrary("hello-jni");

}

}

4b584d5bd588ec48cf31f49fa3bd3361.png

2、实现native方法:

55980071fb7ea4b3d718fc97d6d76f32.png

#include

#include

jstring

Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,

jobject thiz )

{

return (*env)->NewStringUTF(env, "Hello from JNI !"); //in c

return env->NewStringUTF("Hello from JNI !"); //in c++

}

747dc718d96c2259cb22d11b165be625.png

若要定义静态方法:

JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI (JNIEnv * env, jclass clazz);

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐