JNI log的打印调试
来源:互联网 发布:数据库被删除怎么恢复 编辑:程序博客网 时间:2024/05/12 18:16
Printf属于linux应用的打印机制,在androd系统当中没有对应的输出机制,只有在终端下执行时才能回显出来。
LOGE属于android专门定义的机制Android logger,专门打印除kernel外的所有应用的log输出。
Android NDK 开发时,想要在 .c 文件中打印一些调试信息的话,是不能使用 printf() 方法的,NDK 根本不支持,就算写了,在
LogCat 中也不会显示,正确的方式应该是 调用NDK 下的log.h 来打印Log 日志,具体方法如下:
1. 导入log头文件:在你使用的 .c/ .cpp 文件中,导入 log.h 头文件: #include<android/log.h>
在android.mak 加上LOCAL_LDLIBS :=-llog
注意android.mak 里有一行include $(CLEAR_VARS)
必须把LOCAL_LDLIBS :=-llog放在它后面才有用,否则相当于没写
2. 定义LOG 函数:先定义一个全局变量,再定义一些输出的LOG函数:
- #define LOG "ffmpegDemo-jni" // 这个是自定义的LOG的标识
- #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG,__VA_ARGS__) // 定义LOGD类型
- #define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG,__VA_ARGS__) // 定义LOGI类型
- #define LOGW(...) __android_log_print(ANDROID_LOG_WARN,LOG,__VA_ARGS__) // 定义LOGW类型
- #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG,__VA_ARGS__) // 定义LOGE类型
- #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 代码中直接按照一下方式书写:
- LOGD(LOG, "这是Debug的信息");
- LOGE(LOG, "程序错误!!!");
除此之外,更可以给在打印时带上一些变量:
- int width=10;
- int height=20;
- LOGI(LOG, "长和宽分别为 %d ,%d“,width,height);
这种方式更加灵活,非常类似于 C语言中的 printf()函数。
- JNI log的打印调试
- JNI调试C/C++的log打印
- JNI log来代替printf打印调试
- JNI log来代替printf打印调试
- JNI log来代替printf打印调试
- Android ndk jni log 输出 打印 调试
- JNI log来代替printf打印调试
- JNI log来代替printf打印调试
- Android之JNI打印调试信息-LOG打印
- Android的jni下LOG打印输出
- JNI开发之c代码中LOG打印调试信息
- android jni打印log
- jni 打印Log消息
- Android JNI打印Log
- JNI Log 打印
- JNI 中打印Log
- JNI 调试信息 LOG
- python打印log调试信息的方法
- cocos2d-x /cocos2d-iphone在mac下环境搭建
- Oracle体系结构及备份(十八)——bg-database
- 关于大小端与字节序little end与le32_to_cpu
- HDU-2199 二分搜索解方程
- hdu1018-Big Number
- JNI log的打印调试
- 关于default的位置问题:default放在前面
- FLEX传递不同数组
- 算法的学习步骤
- C++中的malloc和delete
- boost库在工作(9)引用计数的智能指针shared_ptr之二
- 腾讯微博客户端开发---若水(第七集、第八集,第九集)
- 解决Android Studio中调试总出现waiting for adb问题
- Tiled convolutional neural networks(TCNN)