嘘,我已经瞒着开发解锁APP日志文件抓取及分析啦!

本文详细介绍Android平台上的日志查看工具,包括DDMS、LOGCAT和Monkey中断日志的使用方法,以及如何通过不同命令行工具抓取和分析各类LOG文件,如logcatmain、logcatradio和adbshell命令等。

APP日志查看工具

(一)DDMS

Dalvik Debug Monitor Service ( Dalvik调试监控服务) ,可视化的图形界面调试监控工具。不同等级log信息显示的颜色不同,使用起来方便直观。ddms监控系统或应用日志、监控线程状态、VM使用状况(内存泄漏通过它来判断)、模拟短信电话事件、生成logcat日志、文件管理及截屏等功能。

打开方式:

(前提:已增加JAVA环境变量及androidsdk环境变量)

1.双击\android-sdk windows\tools (部分可能在platform-tools )目录下ddms.bat直接启动;

2.在eclipse右上角添加工具图标中,点击ddms;

使用方法:

1.接入设备, ddms设备列表中会识别到该设备(如果没有识别,可尝试结束任务管理器中所有adb相关的进程,并重置ddms的adb );

2.设备列表中选中需要抓取的设备名称, logcat区会显示该设备的相关日志信息,默认显示verbose;

3.选择日志信息等级为error ,若程序崩溃,抓取error等级下与所测应用相关的日志即可;

使用示例:

(二)LOGCAT

命令行工具,输出命令行的日志信息。

打开方式:

(前提:已增加JAVA环境变量及android sdk环境变量)

进入cmd ,进入命令行后输入adb logcat;

使用方法:

1.接入设备,且adb devices中有设备信息;

2.输入adb logcat ,即可打印设备相关的日志信息,默认打印verbose,若只是想抓取程序崩溃的相关日志信息,可输入adb logcat *:E ,选择与所测应用相关的日志即可;

使用示例:

(三)Monkey中断日志

Monkey运行时,遇到异常并报错时,产生的命令行日志信息。

打开方式:

打开cmd ,进入命令行后输入adb shell ,进入shell命令行后输入monkey -p com.xxx.xxx -V 1000

使用方法:

1.接入设备,且adb devices中有设备信息;

2.打开cmd,输入monkey -p com.xx.xxx -v 1000 ,当monkey异常中断(即应用程序崩溃或接收到异常、应用程序产生应用程序不响应( ANR )异常两种异常)后;

3.查看异常日志是否与所测的APP相关,如相关则保存异常输入的日志信息即可;

使用示例:

LOG文件分类

实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump等。

状态信息的有:adb shell cat /proc/kmsg ,adb shell dmesg,adb shell dumpstate,adb shell dumpsys,adb bugreport等。

 

LOG文件抓取详解

一、实时打印

//打印应用程序的log

adb logcat -b main -v time>app.log

//打印射频相关的log

adb logcat -b radio -v time> radio.log

//打印系统事件的日志,比如触屏事件

adb logcat -b events -v time

//android log的抓取

adb logcat

//kernel log的抓取

adb shell cat /proc/kmsg

//log 信息的保存

mkdir /data/anr

logcat *:V > /data/anr/android

demsg >/data/anr/kernel

//按ctrl+c结束log输出

adb pull /data/anr ./log/

tcpdump 是很有用的,对于TCP/IP协议相关的都可以使用这个来抓,adb shell tcpdump -s 10000 -w /sdcard/capture.pcap。

二、状态信息

1.bugreport(adb bugreport>bugreport.log),里面包含有dmesg,dumpstate和dumpsys。

2.dumpstate是系统状态信息,里面比较全,包括手机当前的内存信息、cpu信息、logcat缓存,kernel缓存等等。

3.adb shell dumpsys这个是关于系统service的内容,这个命令还有更详尽的用法,比如adb shell dumpsys meminfo system是查看system这个process的内存信息。

4.kmsg抓取

adb shell cat /proc/kmsg > kmsg.txt,打开后查msm_kgsl字段

说明:用于检索用printk生成的内核消息,任何时刻只能有一个具有超级用户权限的进程可以读取这个文件。

5.dmsg抓取

adb shell dmesg > dmesg.txt

说明:dmesg用来显示开机信息,kernel会将开机信息存储在ring buffer中。若是开机时来不及查看信息,可利用dmesg来查看。dmesg是kernel的log,凡是跟kernel相关的,比如driver出了问题(相机,蓝牙,usb,启动,等等)开机信息亦保存在/var/log目录中,名称为dmesg的文件里,more /var/log/dmesg。

6.工程模式下log的抓取

对于Apollo手机请拨打*#*#8888#*#* ,然后勾选相应的LOG。待测试结束后,通过SD卡导出LOG到PC。

三、Log分析:

Get Log from Android System

adb bugreport > bugreport.txt

copy bugreport to the current directory.

bugreport里面包含了各种log信息,大部分log也可以通过直接运行相关的程序来直接获得.

获取该log:读取文件/proc/wakelocks

内核对一些程式和服务唤醒和休眠的一些记录:

KERNEL CPUFREQ

(Linux kernel CPUfreq subsystem) Clock scaling allows you to change the

clock speed of the CPUs on the fly.

This is a nice method to save battery power, because the lower the

clock speed is, the less power the CPU consumes.

PROCESSES

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值