1、在jni文件夹里的hello.c文件加上头文件
#include <jni.h>
#include <android/log.h>
#define LOG_TAG "System.out"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
2、调用java里的方法
JNIEXPORT void JNICALL Java_com_itheima_ccalljava_MainActivity_logFromC
(JNIEnv * env, jobject obj){
LOGD("hello!");
LOGI("hello!");
}
3、在Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS += -llog
#编译生成的文件的类库叫什么名字
LOCAL_MODULE := monitor
#要编译的c文件
LOCAL_SRC_FILES := Monitor.c
include $(BUILD_SHARED_LIBRARY)
4、java页面
/**
* @描述 TODO
* @项目名称 App_imooc
* @包名 com.android.imooc.jni
* @类名 JniActivity
* @author chenlin
* @date 2013年5月24日 上午6:58:39
* @version 1.0
*/
public class JniActivity extends Activity {
private EditText mEtPwd;
static{
//加载类库
System.loadLibrary("hello");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jni);
mEtPwd = (EditText) findViewById(R.id.et_pwd);
Log.i("tag", helloFromC());
}
public void log(View view){
logFromC();
}
public native String logFromC();
}