在Android C/C++層添加LOG調試(LOGI\LOGD\LOGE...)輸出支持

網上整理的   
第一步:在對應的mk文件中加入:LOCAL_LDLIBS := -llog
                                                           LOCAL_SHARED_LIBRARIES += \
                                                                                                         libcutils \
                                                                                                         libutils
第二步:在要使用LOG的cpp文件中加入:
#include <android/log.h>
#include <jni.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "keymatch", __VA_ARGS__)
第三步:這樣就可以使用了:LOGD("我要看到的調試信息^_^");LOGD的語法和printf相同;
 
這樣,在logcat端看到的輸出是:
D/keymatch( 32):我要看到的調試信息^_^
這裏的keymatch是ddms裏面的tag名; 
 
 
如果想改變輸出中的各項內容,可以參考相應顏色的標示,比如,如果想定義LOGE,就可以把上面的ANDROID_LOG_DEBUG改成ANDROID_LOG_ERROR,同理,LOGI神馬的也都以此類推:

#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, "ProjectName", __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "ProjectName", __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO  , "ProjectName", __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN  , "ProjectName", __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR  , "ProjectName", __VA_ARGS__)

當然,如果不嫌麻煩,也可以直接使用__android_log_print函數,而不define定義LOGxxx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章