[Android]Android日志抓取软件测试
1. log文件分类简介
1. 实时打印:
1.1 logcat main(应用程序)
-- adb logcat -b main -v time > app.log
1.2 logcat radio(射频相关-SIMSTK,modem相关的ATcommand)
-- adb logcat -b radio -v time > radio.log
1.3 logcat events(系统事件的日志,比如触屏事件等)
-- adb logcat -b events -v time
1.4 tcpdump(TCP/IP协议相关,比如抓mms下载的时候的UA profile,browser上网的时候,使用proxy的APN下载,streaming的相关内容包括UA profile等)
-- adb shell tcpdump -s 10000 -w /sdcard/capture.pcap
1.5 还有高通平台的还会有QXDM日志(高通提供的解决方案,请参考QPST、QXDM的基本使用说明及作用)。
2. 状态信息:
2.1 kmsg
-- adb shell cat /proc/kmsg > kmsg.txt,打开后查msm_kgsl字段
说明:用于检索用printk生成的内核消息。任何时刻只能有一个具有超级用户权限的进程可以读取这个文件。也可以用系统调用syslog检索这些消息。通常使用工具dmesg或守护进程klogd检索这些消息。proc是一个内存文件系统, 每次读文件kmsg实际是内核内部的循环缓冲区,每读过后,循环缓冲区的东西就被认为已经处理过了(也就是变成无效内容),所以你再次读为空是很正常的 为什么会这样处理呢,循环缓冲区大小有限,内核又随时可能往里面写东西,所以这样处理很正常. 你去查一下/proc/kmsg的信息有没有跟系统日志关联,如果有的话,你就可以读日志文件
2.2 dmesg(开机信息)
-- adb shell dmesg > dmesg.txt
kernel会将开机信息存储在ring buffer中,您若是开机时来不及查看信息,可利用dmesg来查看。dmesg是kernel的log,凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等)开机信息亦保存在/var/log目录中,名称为dmesg的文件里。more /var/log/dmesg
adb shell dumpstate(系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息、logcat缓存,kernel缓存等等)
2.4 dumpsys(系统service的内容)
-- adb shell dumpsys meminfo system(查看system这个process的内存信息)
2.5 bugreport(包含有dmesg,dumpstate和dumpsys)
-- adb bugreport > bugreport.log
2.6 工程模式等
对于Apollo手机请拨打*#*#8888#*#* ,然后勾选相应的LOG。待测试结束后,通过SD卡导出LOG到PC.- 作为参考
3. 开通 push and pull 权限,及read and write权限
默认情况下,都是只读权限,这时候:
1. 输入adb remount;
2. 如果第1方法不行的话,adb shell su之后,将文件系统remount为读写权限:mount -o rw,remount /system。 处于安全考虑,记得完事后remount回只读:mount -o ro,remount /system