Chinaunix首页 | 论坛 | 博客
  • 博客访问: 436544
  • 博文数量: 75
  • 博客积分: 556
  • 博客等级: 中士
  • 技术积分: 712
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 10:10
文章分类
文章存档

2015年(4)

2014年(4)

2013年(31)

2012年(8)

2011年(8)

2010年(20)

分类: Android平台

2013-03-21 18:17:19

转自

NDK 开发时,想要在 .c 文件中打印一些调试信息的话,是不能使用 printf() 方法的,NDK 根本不支持,就算写了,在LogCat 中也不会显示,正确的方式应该是 调用NDK 下的log.h 来打印Log 日志,具体方法如下:

1. 导入log头文件:在你使用的 .c/ .cpp 文件中,导入 log.h 头文件: #include

2. 定义LOG 函数:先定义一个全局变量,再定义一些输出的LOG函数:

  1. #define LOG    "ffmpegDemo-jni" // 这个是自定义的LOG的标识  
  2. #define LOGD(...)  __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__) // 定义LOGD类型  
  3. #define LOGI(...)  __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__) // 定义LOGI类型  
  4. #define LOGW(...)  __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__) // 定义LOGW类型  
  5. #define LOGE(...)  __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__) // 定义LOGE类型  
  6. #define LOGF(...)  __android_log_print(ANDROID_LOG_FATAL,LOG,__VA_ARGS__) // 定义LOGF类型  

上述代码中定义的函数,分别对应于Android 的Java代码中的 Log.d(), Log.i(), Log.w(),Log.e(), Log.f()等方法;

3. 使用上述方法:在.c 代码中直接按照一下方式书写:

  1. LOGD(LOG, "这是Debug的信息");  
  2. LOGE(LOG, "程序错误!!!");  

除此之外,更可以给在打印时带上一些变量:

  1. int width=10;  
  2. int height=20;  
  3. LOGI(LOG, "长和宽分别为 %d ,%d“,width,height);  

这种方式更加灵活,非常类似于 C语言中的 printf()函数。

全文结束,希望能给大家一些帮助~

阅读(1366) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~