在Java环境下使用JNI时可以方便的使用printf函数打印信息,在Eclipse控制台Console视图可以方便的观察到,可在Android环境下使用JNI的话,printf函数就无效了,LogCat视图和Console视图里看不到任何输出。但我们可以使用Android本身的log方法,其实现步骤如下:
1、在JNI的实现代码文件(.c或者.cpp)中加入包含LOG头文件的如下代码:
#include <android/log.h>
2、在需要打印的方法中添加打印代码,例如:
__android_log_print(ANDROID_LOG_INFO, "JniX431FileTest", "lsx_init");
ANDROID_LOG_INFO:是日志级别;
"JniX431FileTest":是要过滤的标签,可以在LogCat视图中过滤。
"lsx_init":是实际的日志内容。
3、在Android工程的Android.mk文件中添加如下内容:
LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
4、OK,现在就可以打印信息了。
至于怎么实现一个Android工程中调用JNI本地C/C++函数可以参考前面的blog:
http://blog.youkuaiyun.com/jjunjoe/article/details/7007052