现在的位置: 首页 > 综合 > 正文

Android NDK中使用LOG调试C++程序

2018年02月15日 ⁄ 综合 ⁄ 共 830字 ⁄ 字号 评论关闭

一、__adroid_log_print函数

使用__adroid_log_print函数,向调试端输出log。__adroid_log_printandroid/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为标签。

二、实例

定义一个宏,tagmytest

#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,显示如下

抱歉!评论已关闭.