一、__adroid_log_print函数
使用__adroid_log_print函数,向调试端输出log。__adroid_log_print在android/log.h文件中。
__adroid_log_print函数原型为
int __android_log_print(int prio, const char *tag, const char *fmt, ...)
//prio取值如下
typedef enum android_LogPriority {
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;
//tag为标签。
二、实例
定义一个宏,tag为mytest
#defineLOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "mytest",__VA_ARGS__)
使用此宏如下
JNIEXPORT jboolean JNICALL Java_comnav_landstar_LandStarLayer_StarServer
(JNIEnv * env, jobject thiz, jstring strTemp)
{
LOGD("StarServer");
return (jboolean)1;
}
在Android.mk文件中添加
LOCAL_LDLIBS:= -llog
即 __android_log_print函数所在的函数库
在ADT中设置LogCat的过滤器
选择过滤器threadtest,显示如下