hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

Android Programming TIPS(5)

NDKでC/C++からログを出力するには

Androidデバッグではログの表示に android.util.Log をよく使います。
NDKのデバッグでもC/C++のネイティブコードからログを表示するためのライブラリが用意されています。

1) Android.mkにライブラリを追加

	Android.mk:
		LOCAL_LDLIBS := -llog

2) C/C++のソースにヘッダ追加

	#include 

3) C/C++のネイティブコードからのログ出力は、__android_log_print()を使います。

	int __android_log_print(int prio, const char *tag,  const char *fmt, ...);

printfと同様の可変引数です。
prioは次の定数が使用できます:

ANDROID_LOG_UNKNOWN, ANDROID_LOG_DEFAULT, ANDROID_LOG_VERBOSE,ANDROID_LOG_DEBUG,
ANDROID_LOG_INFO,ANDROID_LOG_WARN,ANDROID_LOG_ERROR, ANDROID_LOG_FATAL, 
ANDROID_LOG_SILENT

使用例:

__android_log_print(ANDROID_LOG_VERBOSE, "EBPocket", 
	"external gaijimap added: %s",szFileName );