第一,建立android 工程
package com.ghd.test;
public class Hello extends Activity{
static {
System.loadLibrary("hello");
}
public natvie stringFromJni();
public void onCreate(Bundle bundle){
TextView tv = new TextView(this);
tv.setText(stringFromJni());
setContentView(tv);
}
}
第二,javah -jni 生成头文件
进入工程bin目录下,运行javah -jni com.ghd.test.Hello
会生成文件com_ghd_test_Hello.h 内容如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_ghd_test_Hello */
#ifndef _Included_com_ghd_test_Hello
#define _Included_com_ghd_test_Hello
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_ghd_test_Hello
* Method: stringFromJni
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_ghd_test_Hello_stringFromJni
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
第三建立目录jni
新建文件hello.c
#include <string.h>
#include <jni.h>
jstring Java_com_ghd_test_Hello_stringFromJni
(JNIEnv *env, jobject thiz)
{
return (*env)->NewStringUTF(env,"ghd214,first programe for ndk test");
};
新建文件Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c
include $(BUILD_SHARED_LIBRARY)
然后在目录jni 下运行命令 ndk-build
生成目录libs 和obj
最后运行Hello 工程。