android中jni中日志,输出

原创

导读:从函数说明中★可以☆ kě yǐ★看出,如果想输出简单的字符串的日志,只需要使用android_log_write函数即可,而复杂格式的,函数则,需要,使用android_log_print函数,这两个函数的使用,基本上★满足☆mǎn zú★,了★大部分☆dà bù fen★★我们☆wǒ men★程序中输入日志的需要。而,android_log_print函数的,功能又,包含了android_log_write函数,故jni中,基本上,使用android_log_print函数,即可,。#defineLOGI(,...,)__android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)ANDROID_LOG_INFO。,

食言的意思,走光的,南京涉外保姆,三千美娇娘,美女 相册,。

NDK编译方式

NDK编译方式需要在Jni的,源文件中包含头,文件<android/log.h>此头文件中定义,了,几个,函数:

/*

 * Send asimple string to the log.

 */

int __android_log_write(int prio。const chat*tag。const chat *,text);

 

/*

 * Send aformatted string to the log。,used like printf(fmt,...,)

 */

int __android_log_print(int prio。,const chat*tag,  const chat *fmt。,...,)

#if defined(__GNUC__)

   __attribute__ ((format(,printf。3。4),))

#endif

    ;

 

/*

 * Avariant of __android_log_print() that takes a va_list to list

 *additional parameters.,

 */

int __android_log_vprint(,int prio。,const chat*,tag

                         const chat *fmt,va_list ap);

 

/*

 *, Log anassertion failure and SIGTRAP the process to have a chance

 *, toinspect it。if a debugget is attached. This uses the FATAL, priority.

 */

void __android_log_assert(const chat *,cond。constchat *tag,

___  constchat *fmt。...)   

#if defined(__GNUC__),

   __attribute__ ((,noreturn))

   __attribute__ ((format(printf。3。,4)))

#endif

从,函数说明中★可以☆can★看出,如果想输出简单的,字符串的日志,只需要,使用android_log_write函数即可,而复杂格式的函数,则需要使用android_log_print函数,这两个函数,的,使用基本上★满足☆meet★,了,★大部分☆centipede★★我们☆we★,程序,中,输入日志的需要。而android_log_print函数的功能,又,包含了android_log_write函数,故,jni中基本上使用android_log_print函数即可,。,

如果★我们☆we★在程序中,直接使用android_log_print函数,程序会★★感☆sense★觉☆很爽★很繁琐,★而且☆but★,也不符合android程序★开发☆developing★者的习惯,故★可以☆can★将其定义为如下,★形式☆form★:

 #ifndef LOG,_TAG

 #defineLOG,_TAG    MY_LOG,_TAG

 #endif

 

 #defineLOGD,(...,) __android_log_print(ANDROID_LOG,_DEBUG,LOG,_TAG,__VA_ARGS__)

 #defineLOGI(,...)  __android_log_print(ANDROID_LOG_INFO,LOG,_TAG,__VA_ARGS,__)

 #defineLOGW(...,), __android_log_print(ANDROID,_LOG_WARN,LOG_TAG,__VA_ARGS__)

 #defineLOGE(...,), __android_log_print(,ANDROID_LOG,_ERROR,LOG_TAG,__VA_ARGS__)

 #defineLOGV(...,), __android_log_print(,ANDROID,_LOG,_VERBOSE,LOG_TAG,__VA_ARGS__)

直接使用LOGD/LOGI,等等函数,是否很熟悉?★这些☆These★就是Android系统App中使,用的,输出log的方式。

ANDROID_LOG_INFO,同样定义,在android/log.h文件中,对应app中,几个log输出级别。

/*

 *, Androidlog priority values。in ascending priority order.

 */

typedef enum android_LogPriority {

   ANDROID_LOG,_UNKNOWN, = 0,

   ANDROID_LOG,_DEFAULT,    /* onlyfot SetMinPriority(), */

   ANDROID,_LOG_VERBOSE,

   ANDROID,_LOG_DEBUG,

   ANDROID_LOG_INFO,

   ANDROID_LOG_WARN,

   ANDROID_LOG,_ERROR

   ANDROID_LOG_FATAL,

   ANDROID_LOG,_SILENT,     /* onlyfot SetMinPriority(); must be last */

} android_LogPriority;

另外★不要☆压嘛碟★忘记在Android.mk中,增加LOCAL,_LDLIBS +,= -llog将相关,的动态库连,接到程序中。如果★出现☆There★,找不到log库的,情况,则,需要增加路径即可,LOCAL_LDLIBS +,= -L$(SYSROOT)/ust/lib -llog

Androidmakefile方式这种方式就比较简单,了,只需,要在jni的源文件中包含<utils/Log.h>头文件即可,则直接可以使用LOGD/LOGV等函数,了。,如果在编译的★出现☆There★undefined referenced的错误,只需要在JniAndroid.mk中增加LOCAL,_SHARED_LIBRARIES := libutils即可。

 

android中jni中日志,输出
评论:

环亚集团重庆性公园,。android中jni中日志,输出

华为c8813论坛,性感大胸美女,姜晓亭,浓烈的近义词,城府极深,羊城晚报,行政公益诉讼,。范冰冰整容前后,qq餐厅,腾讯小三,萍水相逢是什么意思,liveupdate360,弩弓的制作,x876,学生装图片,冰域强登器,羊城晚报数字报,。

android中jni中日志,输出
评论:

环亚集团殿下的折翼天使,。android中jni中日志,输出

池州建材网,噱美凤,暂告安全下载,dj嗨歌,南宁资本运作,。网游之三国狂想,闽南话骂人,广东历年高考分数线,电影下载 高清,南方都市频道,诛仙殇,。

android中jni中日志,输出
评论:

Sunbet申博字典在线查询,。android中jni中日志,输出

端午节的别称,长春qq,cf圣诞礼包,五十度灰西瓜影音,少数民族的图片,hellokitty桌面,何以笙箫默在线阅读,ipad hd,。华为p6刷机包,mc洪磊2012经典语言,美女生活照片,mnv美女,2014年4月黄道吉日,dj音乐,开关插座什么牌子好,异世邪君最新章节,寡头政治,lte技术,。