Android jni 使用C语言调用java中的log方法

来源:互联网 发布:淘宝星巴克杯子包装 编辑:程序博客网 时间:2024/04/29 03:25

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();}
0 0
原创粉丝点击