Android NDK :在 C语言代码中输出Log

限于喜欢 提交于 2019-12-06 12:39:31

Android NDK :在 C语言代码中输出Log
本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-07/66106.htmAndroid NDK 开发时,想要在 .c 文件中打印一些调试信息的话,是不能使用 printf() 方法的,NDK 根本不支持,就算写了,在

LogCat 中也不会显示,正确的方式应该是 调用NDK 下的log.h 来打印Log 日志,具体方法如下:

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

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()函数。

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

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-07/66106.htm

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!