前几天跑某大公司面试,问我会不会在android真机调试的时候直接输出到控制台,当时有点懵逼,居然不知道控制台是什么东西了,居然理解成了输出到eclipse...我觉得程序没有通过eclipse打包,怎么可能输出到它里面去呢...等面试完了,回公司的路上才回过神来,那个黑框框不就是控制台么!!!
adb是androidSDK的一个工具,位置就在sdk目录下的platform-tools文件夹下。
通过adb,不仅可以查看在Unity中自己设定的打印信息,包括系统信息和异常都能获取到。是android开发的一个神器!
因为最近的某些游戏中的需求在搞android代码,很多都需要再真机上测试,eclipse又不知道怎么看日志,所以就一直用adb
打开控制台,输入如下命令:
adb logcat -s Unity -d > xxx.txt
运行以后,unity中的所有输出都会保存到目标文件中(注意填写完整路径)
其中Unity是过滤用的tag,unity中的所有输出都是“Unity”
如果要按等级进行查看,比如说只看错误信息,并且直接显示在控制台,可以这样写
adb logcat -s Unity:e
要查看所有的错误信息,包括系统的,那就这样写
adb logcat -s *:e
下面是adb logcat的帮助信息:
[plain]
view plain
copy
- octopus@octopus:~$ adb logcat --help
- Usage: logcat [options] [filterspecs]
- options include:
- -s Set default filter to silent.
- Like specifying filterspec '*:s'
- -f <filename> Log to file. Default to stdout
- -r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
- -n <count> Sets max number of rotated logs to <count>, default 4
- -v <format> Sets the log print format, where <format> is one of:
- brief process tag thread raw time threadtime long
- -c clear (flush) the entire log and exit
- -d dump the log and then exit (don't block)
- -t <count> print only the most recent <count> lines (implies -d)
- -g get the size of the log's ring buffer and exit
- -b <buffer> Request alternate ring buffer, 'main', 'system', 'radio'
- or 'events'. Multiple -b parameters are allowed and the
- results are interleaved. The default is -b main -b system.
- -B output the log in binary
- filterspecs are a series of
- <tag>[:priority]
- where <tag> is a log component tag (or * for all) and priority is:
- V Verbose
- D Debug
- I Info
- W Warn
- E Error
- F Fatal
- S Silent (supress all output)
- '*' means '*:d' and <tag> by itself means <tag>:v
- If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.
- If no filterspec is found, filter defaults to '*:I'
- If not specified with -v, format is set from ANDROID_PRINTF_LOG
- or defaults to "brief"
没用过的可以尝试一下,注意adb命令,需要配置环境变量,如果不配置环境变量,就直接写adb.exe的完整路径