天天看点

有关Monkey命令的两个隐藏选项

一般android app的测试过程,常用的monkey选项如同官网中所列,但如果看monkey源代码或则通过 monkey --help,还是能找到一些有意思的东西。

其中,有2个网页中没有提到的选项。

--bugreport

--hprof

bugreport 其实对应的是一个叫做bugreport的工具,可以运行adb bugreport观察,它提供了那个时刻系统非常多的信息,从meminfo,cpuinfo,vmstat到dmesg,buildprop等信息,多到想不到。有兴趣的,可以google之。

当这个标签在monkey的运行中标识的时候,每当monkey运行时发现appcrash,anr,system not responding的时候,monkey就会自动记录错误时的信息。

可以在 /mnt/sdcard里面找到类似于app_crashnet.crimoon.pm.a91_2014-07-29_01_01_22.990_.txt 这样的文件。每个问价有15mb到20mb大小,内容翔实,乃是开发debug之宝。

hprof的作用就是,在monkey开始之前和结束之后(正常结束,被kill的不算),会调用如下代码

这个代码的作用,就是对于所有persistent的process,获取它的hprof信息,类似于对于所有的persistent应用 kill -10 pid。它的好处也不言而喻,hprof文件出来了,找内存泄漏还远么。

有一点要吐槽的是,注释里面明明说 /data/misc里面记录该文件,实际上,还是保存在了 /mnt/sdcard 里面。文件名类似于 com.aliyun.ams.assistantservice_hprof_dump20140728203235.prof。一般每个文件大约5mb,也看到过 com.android.systemui,比较夸张,有25mb。

可见,这个开关对于测试整个系统的内存泄漏,还是会有比较大的帮助的。

继续阅读