package com.android.jni;
public class JniTest {
public static native String hello ();
}
#include "com_android_jni_JniTest.h"
#include
/*
* Class: com_android_jni_JniTest
* Method: hello
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_android_jni_JniTest_hello
(JNIEnv * env, jclass cla){
return (*env)->NewStringUTF(env, "hello");
}
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := JniTest
LOCAL_SRC_FILES := JniTest.c
include $(BUILD_SHARED_LIBRARY)
该文件中的一些变量对应的含义如下:
LOCAL_SRC_FILES -编译的源文件
LOCAL_MODULE -编译的目标对象
package com.android.jni;
public class JniTest {
static {
System. loadLibrary("JniTest"); //加载so动态链接库
}
public static native String hello();
}
package com.android.test;
import com.android.jni.JniTest;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class TestActivity extends Activity {
private TextView tv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. main);
tv=(TextView)findViewById(R.id. tv);
tv.setText(JniTest.hello());
}
}
JNIEXPORT jstring JNICALL Java_com_android_jni_JniTest_hello
(JNIEnv *, jclass){
return (*env)->NewStringUTF(env, "hello");
}