Android NDK 打印log
1. 在c源文件中,需要include头文件、定义宏
#define LOG_TAG "TestLib" //自定义的变量,相当于logcat函数中的tag
#undef LOG
#include <android/log.h> //#include <utils/Log.h>//在源码环境中,头文件的路径不同
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
可以定义多种log级别,在log.h中可以看到:
LOGD("Hello LIB!\n");//将会输出“TestLib” “Hello LIB!”
3.在mk文件中,需要包含响应的库
LOCAL_C_INCLUDES := $(JNI_H_INCLUDE) //包含相应的头文件
LOCAL_LDLIBS := -llog //包含打印log需要的库文件
LOCAL_PRELINK_MODULE := false
#define LOG_TAG "TestLib" //自定义的变量,相当于logcat函数中的tag
#undef LOG
#include <android/log.h> //#include <utils/Log.h>//在源码环境中,头文件的路径不同
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
可以定义多种log级别,在log.h中可以看到:
typedef enum android_LogPriority {2. 在c源文件中,调用输入log的函数
ANDROID_LOG_UNKNOWN = 0,
ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */
ANDROID_LOG_VERBOSE,
ANDROID_LOG_DEBUG,
ANDROID_LOG_INFO,
ANDROID_LOG_WARN,
ANDROID_LOG_ERROR,
ANDROID_LOG_FATAL,
ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */
} android_LogPriority;
LOGD("Hello LIB!\n");//将会输出“TestLib” “Hello LIB!”
3.在mk文件中,需要包含响应的库
LOCAL_C_INCLUDES := $(JNI_H_INCLUDE) //包含相应的头文件
LOCAL_LDLIBS := -llog //包含打印log需要的库文件
LOCAL_PRELINK_MODULE := false