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

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();


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lovoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值