안드로이드 개발 질문/답변
(글 수 45,052)
ndk 빌드하다가 답답하신 분들 많을껍니다.
printf를 쓴다고 해도 값이 보이는게 아니고..
그렇다고 System.out.println을 쓸 수 있는 것도 아니고..
...해서 알아본 것이 LOGI 라는 것이 있네요..
==================================================================================
안드로이드 JNI 영역에서 printf 를 사용해봤자 쓰이지도 않고 해서 찾아낸것이
안드로이드 어플처럼 LOG를 사용하는 거~ !! 답답함은 조금 줄어듬..
#include<android/log.h> 를 포함해야하고~
log.h를 살펴보면 __android_log_print(LOG_LEV, _TAG, ...);
형태로 되어있는데 ~ 어플의 Log.i 이런것들 쓰다가 쓸려면 돌아버리죠~ 그래서
#define LOGV(...)
__android_log_print(ANDROID_LOG_VERBOSE, "libnav", __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "libnav", __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "libnav", __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , "libnav", __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "libnav", __VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG , "libnav", __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO , "libnav", __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN , "libnav", __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR , "libnav", __VA_ARGS__)
헤더포함이후 저걸 선언해주면 어플과 비슷하게 사용할 수 있단 말씀
LOGI("test"); 이런식으로 찍어보셔~ 됩니다 돼요~ ㅋ
===================================================================================
출처 : http://surizap.tistory.com/11
이것을 질문란에 올리는 것은 혹시 더 좋은 방법을 알고 있는 분이 있을까 싶어서입니다.^^
더 좋거나 개발 Tip이 있으시면 댓글로 달아주세요~




#include "myLog.h" #include <stdio.h> #include <stdarg.h> #if _MY_WINDOWS #include <windows.h> #elif _MY_ADNROID #include <android/log.h> #endif int myLog(const char *szFormat, ... ) { char szLog[4096] = {0}; va_list args; va_start(args, szFormat); vsprintf(szLog+12, szFormat, args); #if _MY_WINDOWS OutputDebugString(szLog); #elif _MY_ADNROID __android_log_print(ANDROID_LOG_INFO, "myLog", szLog); #elif _MY_IPHONE printf("%s", szLog); #elif _MY_LINUX printf("%s", szLog); #endif va_end( args ); return 0; }전 동일한 모듈을 윈도우, 안드로이드, 아이폰, 리눅스에서 빌드할 일이 있을때, 위와 같이 했었어요.
ANDROID_LOG_INFO를 바꾸려면 별도 함수 둬야하겠네요 ㅎㅎ