在Android应用程序调试中,有时候第三方应用程序的日志输出是通过printf之类的标准函数输出的,logcat不能捕获这些日志,一个方法是使用logwrapper命令来执行第三方应用程序,logwrapper命令可以把第三方应用程序的标准输出重定向到logcat的日志系统中去(缺省级别为LOG_INFO,标签为应用程序名)。
logwrapper的Usage如下:
Usage: logwrapper [-a] [-d] [-k] BINARY [ARGS ...]
Forks and executes BINARY ARGS, redirecting stdout and stderr to the Android logging system. Tag is set to BINARY, priority is always LOG_INFO.
-a: Causes logwrapper to do abbreviated logging. This logs up to the first 4K and last 4K of the command being run, and logs the output when the command exits
-d: Causes logwrapper to SIGSEGV when BINARY terminates fault address is set to the status of wait()
-k: Causes logwrapper to log to the kernel log instead of the Android system log
例如,在adb shell下
root@android:/ ps
ps的结果只在当前控制台下输出,要想把ps的结果输出到adb log中去,可以使用:
root@android:/ logwrapper ps
这样adb logcat就能捕获到ps的输出了