版权所有 foruok ,如需转载敬请注明出处(http://blog.csdn.net/foruok)。
如果你在目标 android 设备上运行了 qt on android 应用,你可能希望看到程序输出的日志信息。 android sdk 中有 adb 工具,当你连接了目标设备,可以使用 adb logcat 查看 android 设备上应用输出的日志。
先介绍一下 adb 工具的使用。一般我常用下列命令:
adb logcat ,查看手机或其他设备上输出的所有日志
adb logcat -v time ,让日志带时间信息
adb logcat -v time -s tag ,只显示指定标签的日志信息,同时显示日志时间。比如 adb logcat -v time -s qnote ,只显示标签为 qnote 的日志信息;如果你想同时过滤多个标签,可以用英文半角逗号分隔标签,如 adb logcat -v time -s qnote,test 。
为了把日志导入 android 系统的日志系统(一个环形内存日志系统),我写了一个辅助函数,方便大家使用。
先看头文件 qdebug2logcat.h :
很简单,我声明了一个函数 installlogcatmessagehandler ,如果没有定义 android 宏,它就是一个空宏,什么也不干;否则就安装一个消息过滤器,接管 qt 输出的消息,转发到 android 的日志系统中。
看源文件 qdebug2logcat.cpp :
实现也很简单,调用 qinstallmessagehandler 把 messageoutput2logcat 设置为 qt 应用的默认消息处理器。 messageoutput2logcat 函数则将 qt 的调试消息级别映射到 android 的日志级别上并调用 __android_log_write() 函数将日志信息写入 android 日志系统。
你可以直接使用这两个文件,加入到你的项目中即可。然后在 main() 函数前包含 qdebug2logcat.h 头文件,在 main() 函数体第一行加入下面的代码:
好了,一切就绪了。
版权所有 foruok ,如需转载敬请注明出处(http://blog.csdn.net/foruok)。
我翻译的大神 bogdan vatra 的 qt on android 系列文章:
我的关于 qt on android 的系列文章: