Android jni总结二:添加打印信息

2017-12-05  本文已影响0人  逆风Lee

  开发过程中增加打印信息是必须的,在jni中printf属于linux应用的打印机制,在androd系统当中没有对应的输出机制,只有在终端下执行时才能回显出来,在jni中正确的打印方式应该是 调用NDK 下的log.h 来打印Log 日志,具体方法如下:

1.导入log库

在build.gradle中加入ldLibs "log"

android {
    defaultConfig {
        ndk{
            ldLibs "log"
        }
    }
}

加入ldLibs "log"以后,gradle会自动在项目的app/build/intermediates/ndk/debug底下的Android.mk中加入:
LOCAL_LDLIBS := -llog

2.导入log头文件

在.c或者.cpp文件中加入log.h头文件:

#include<android/log.h>

3.使用

可以先定义一个log tag:

#define TAG   "GOODLUCK"

再定义各个等级的log方法:

•#define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__) // 定义LOGD类型  

•#define LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__) // 定义LOGI类型  

•#define LOGW(...)  __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__) // 定义LOGW类型  

•#define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__) // 定义LOGE类型  

•#define LOGF(...)  __android_log_print(ANDROID_LOG_FATAL,LOG,__VA_ARGS__) // 定义LOGF类型  

使用:

LOGE("jni test");
LOGE("jni test width = %d",1);
LOGE("jni test str = %s","test");

加参数的打印类似于printf

上一篇下一篇

猜你喜欢

热点阅读