1、执行以下monkey命令:
adb shell monkey -p com.android.settings -v 1000 > E:\apk\monkey.log
2、monkey跑完后,会出现如下日志:
//activityResuming(com.android.settings)
//activityResuming(com.android.settings)
--- 表示一个APP从前台调入后台,然后又从后台恢复到前台的过程,每做一次这样的动作,就会产生一行这样的信息。
这里表示com.android.settings做了两次这样的动作。
Events injected:1000
统计monkey发送的事件数量。如果Events injected统计的事件数量比我们在命令中发送的少(假如,这里少于1000),表示monkey在运行的过程中出现了异常。
在本次测试中,我们发现monkey出现了异常,截图如下:
3、结合logcat日志分析问题
logcat日志分析的基本步骤。
1,如果是ANR(Android Not Responding)问题(具体的表现是,系统出现类似这样的提示:APP提示无法响应,是结束进行还是继续等待), 则搜索“ANR” 或 'anr in'关键词。 快速定位到关键事件信息 。
如:
12-02 21:31:22.350 E/ActivityManager( 389): ANR in com.android.settings (com.android.settings/.SubSettings)
12-02 21:31:22.350 E/ActivityManager( 389): PID: 676
- 如果是系统crash(具体的表现是,系统出现类似这样的提示:很抱歉,“xxx”已停止运行),会有这些关键字:java.lang.NullPointerException。
如果程序在运行初期报 Native crash ,很有可能是内存不足导致的。下图是内存不足导致的错误。OO
本例子,我们在logcat日志中搜索anr in,发现以下日志:
这个日志的意思是,app出现 ANR的问题,进程号是676,ANR的跟踪日志在/data/anr/traces.txt文件里。
接下来,我们通过ADB命令获取出traces.txt文件。我们把这个文件提供给开发定位即可。