您的位置:首页 > 其它

Monkey之Log分析

2015-11-09 12:06 253 查看
上一篇我们提到了如何使用Monkey测试,但是,测试完毕之后,我们又该如何分析呢?我们怎样才知道我们的程序是否存在问题呢?这一篇就让我们试着分析一下Monkey打印的Log 吧!

什么时候会出现Log文件?

一般在如下几种情况会产生log文件:

1. 程序异常退出,uncausedexception (Fatal)

2. 程序强制关闭,ForceClosed (简称FC) (Fatal)

3. 程序无响应,ApplicationNo Response(简称ANR)

ANR出现的情况有以下两种

A 界面操作按钮的点击等待响应时间超过5秒

B HandleMessage回调函数执行超过10秒,BroadcasterReciver里的onRecive()方法处理超过10秒

4. 手动生成。

Log文件一般很长,但是一般分为三大块组成:

1. 系统基本信息,包括 内存,CPU,进程队列,虚拟内存 , 垃圾回收等信息 。

------MEMORY INFO (/proc/meminfo) ------
------CPU INFO (top -n 1 -d 1 -m 30 -t) ------
------PROCRANK (procrank) ------
------VIRTUAL MEMORY STATS (/proc/vmstat) ------
------VMALLOC INFO (/proc/vmallocinfo) ------


格式如下:

------MEMORY INFO (/proc/meminfo) ------
MemTotal:        347076 kB
MemFree:          56408 kB
Buffers:           7192 kB
Cached:          104064 kB
SwapCached:           0 kB
Active:          192592 kB
Inactive:         40548 kB
Active(anon):    129040 kB
Inactive(anon):    1104 kB
Active(file):     63552 kB
Inactive(file):   39444 kB
Unevictable:       7112 kB
Mlocked:              0kB


事件信息, 也是我们主要分析的信息 。

------VMALLOC INFO (/proc/vmallocinfo) ------
------EVENT INFO (/proc/vmallocinfo) ------


格式如下:

------SYSTEM LOG (logcat -b system -v time -d *:v) ------
01-1516:41:43.671 W/PackageManager( 2466): Unknown permissioncom.wsomacp.permission.PROVIDER in package com.android.mms
01-1516:41:43.671 I/ActivityManager( 2466): Force stopping packagecom.android.mms uid=10092
01-1516:41:43.675 I/UsageStats( 2466): Something wrong here, didn't expectcom.sec.android.app.twlauncher to be paused
01-1516:41:44.108 I/ActivityManager( 2466): Start proccom.sec.android.widgetapp.infoalarm for servicecom.sec.android.widgetapp.infoalarm/.engine.DataService: pid=20634uid=10005 gids={3003, 1015, 3002}
01-1516:41:44.175 W/ActivityManager( 2466): Activity pause timeout forHistoryRecord{48589868com.sec.android.app.twlauncher/.Launcher}
01-1516:41:50.864 I/KeyInputQueue( 2466): Input event
01-1516:41:50.866 D/KeyInputQueue( 2466): screenCaptureKeyFlag setting0
01-1516:41:50.882 I/PowerManagerService( 2466): Ulight 0->7|0
01-1516:41:50.882 I/PowerManagerService( 2466): Setting target 2: cur=0.0target=70 delta=4.6666665 nominalCurrentValue=0
01-1516:41:50.882 I/PowerManagerService( 2466): Scheduling lightanimator!
01-1516:41:51.706 D/PowerManagerService( 2466): enableLightSensortrue
01-1516:41:51.929 I/KeyInputQueue( 2466): Input event


虚拟机信息, 包括进程的,线程的跟踪信息,这是用来跟踪进程和线程具体点的好地方。

------VM TRACES JUST NOW (/data/anr/traces.txt.bugreport: 2011-01-1516:49:02) ------
------VM TRACES AT LAST ANR (/data/anr/traces.txt: 2011-01-15 16:49:02)------


格式如下:

-----pid 21161 at 2011-01-15 16:49:01 -----
Cmdline: com.android.mms

DALVIKTHREADS:
"main"prio=5 tid=1 NATIVE
|group="main" sCount=1 dsCount=0 s=N obj=0x4001d8d0self=0xccc8
|sysTid=21161 nice=0 sched=0/0 cgrp=default handle=-1345017808
|schedstat=( 4151552996 5342265329 10995 )
atandroid.media.MediaPlayer._reset(Native Method)
atandroid.media.MediaPlayer.reset(MediaPlayer.java:1218)
atandroid.widget.VideoView.release(VideoView.java:499)
atandroid.widget.VideoView.access$2100(VideoView.java:50)
atandroid.widget.VideoView$6.surfaceDestroyed(VideoView.java:489)
atandroid.view.SurfaceView.reportSurfaceDestroyed(SurfaceView.java:572)
atandroid.view.SurfaceView.updateWindow(SurfaceView.java:476)


如果是ANR问题, 则搜索“ANR”关键词。 快速定位到关键事件信息 。

如果是ForceClosed和其它异常退出信息,则搜索”Fatal”关键词,快速定位到关键事件信息 。

定位到关键事件信息后, 如果信息不够明确的,再去搜索应用程序包的虚拟机信息,查看具体的进程和线程跟踪的日志,来定位到代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Monky