Monkey之Log分析
2015-11-09 12:06
253 查看
上一篇我们提到了如何使用Monkey测试,但是,测试完毕之后,我们又该如何分析呢?我们怎样才知道我们的程序是否存在问题呢?这一篇就让我们试着分析一下Monkey打印的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,进程队列,虚拟内存 , 垃圾回收等信息 。
格式如下:
事件信息, 也是我们主要分析的信息 。
格式如下:
虚拟机信息, 包括进程的,线程的跟踪信息,这是用来跟踪进程和线程具体点的好地方。
格式如下:
如果是ANR问题, 则搜索“ANR”关键词。 快速定位到关键事件信息 。
如果是ForceClosed和其它异常退出信息,则搜索”Fatal”关键词,快速定位到关键事件信息 。
定位到关键事件信息后, 如果信息不够明确的,再去搜索应用程序包的虚拟机信息,查看具体的进程和线程跟踪的日志,来定位到代码。
什么时候会出现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”关键词,快速定位到关键事件信息 。
定位到关键事件信息后, 如果信息不够明确的,再去搜索应用程序包的虚拟机信息,查看具体的进程和线程跟踪的日志,来定位到代码。
相关文章推荐
- iOS [UIScreen mainScreen].scale
- 在Webstorm中使用Autoprefixer
- poj2632模拟法
- sqlserver日期(时间)格式化
- WEB前端学习 Day 6(Javascript 初识+变量+逻辑判断+数据类型)
- 快排,堆排序,折半查找算法(Java版)
- ubuntu14.04安装360随身wifi 2代
- cms修改后台目录
- 《How Tomcat Works》学习笔记(一)
- html小白冷知识搜集
- <context:component-scan/>
- cms
- sp&wp 的三板斧
- 新闻、资讯类APP首页模板
- android studio中报error: Apostrophe not preceded by \错误
- poj 1980 Unit Fraction Partition 深搜剪枝
- iOS中的NSAlert
- 10个chrome console实用小技巧
- JQUERY 获取html标签中的属性值
- 示例详解JavaScript解析器的执行过程