一、__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,显示如下