有关Monkey命令的两个隐藏选项
来源:互联网 发布:python 缺省 编辑:程序博客网 时间:2024/04/29 15:04
一般Android App的测试过程,常用的Monkey选项如同官网中所列,但如果看Monkey源代码或则通过 monkey –help,还是能找到一些有意思的东西。
其中,有2个网页中没有提到的选项。
1. –bugreport
2. –hprof
bugreport 其实对应的是一个叫做bugreport的工具,可以运行adb bugreport观察,它提供了那个时刻系统非常多的信息,从meminfo,cpuinfo,vmstat到dmesg,buildprop等信息,多到想不到。有兴趣的,可以google之。
当这个标签在Monkey的运行中标识的时候,每当Monkey运行时发现AppCrash,anr,system not responding的时候,Monkey就会自动记录错误时的信息。
// Write the bugreport to the sdcard. private void getBugreport(String reportName) { reportName += MonkeyUtils.toCalendarTime(System.currentTimeMillis()); String bugreportName = reportName.replaceAll("[ ,:]", "_"); commandLineReport(bugreportName + ".txt", "bugreport"); }
可以在 /mnt/sdcard里面找到类似于app_crashnet.crimoon.pm.a91_2014-07-29_01_01_22.990_.txt 这样的文件。每个问价有15MB到20MB大小,内容翔实,乃是开发debug之宝。
hprof的作用就是,在monkey开始之前和结束之后(正常结束,被kill的不算),会调用如下代码
/** * Send SIGNAL_USR1 to all processes. This will generate large (5mb) * profiling reports in data/misc, so use with care. */ private void signalPersistentProcesses() { try { mAm.signalPersistentProcesses(Process.SIGNAL_USR1); synchronized (this) { wait(2000); } } catch (RemoteException e) { System.err.println("** Failed talking with activity manager!"); } catch (InterruptedException e) { } }
这个代码的作用,就是对于所有persistent的process,获取它的hprof信息,类似于对于所有的persistent应用 kill -10 pid。它的好处也不言而喻,hprof文件出来了,找内存泄漏还远么。
有一点要吐槽的是,注释里面明明说 /data/misc里面记录该文件,实际上,还是保存在了 /mnt/sdcard 里面。文件名类似于 com.aliyun.ams.assistantservice_hprof_dump20140728203235.prof。一般每个文件大约5MB,也看到过 com.android.systemui,比较夸张,有25MB。
可见,这个开关对于测试整个系统的内存泄漏,还是会有比较大的帮助的。
- 有关Monkey命令的两个隐藏选项
- Monkey命令可用的参数选项
- monkey命令的全部
- Monkey的基本命令
- 有关g++的-rdynamic选项
- monkey的基本命令使用说明
- Monkey测试命令的使用
- monkey命令参数的详解
- 有关平台移植预编译命令的一些体会 _64选项
- Monkey 命令
- monkey命令
- monkey命令
- monkey 命令
- Monkey命令
- monkey命令
- monkey命令
- monkey 命令
- 【转载】Android Monkey 命令行可用的全部选项
- 简述操作系统
- myloader还原恢复详解
- bzoj1018 堵塞的交通traffic
- 4个你需要知道的Asset Catalog的秘密
- dsmcc dc oc 比较
- 有关Monkey命令的两个隐藏选项
- 神经网络之BP神经网络
- 搭建高质量的Android项目框架系列二
- Baymax (Android版的Siri)之百度语音识别SDK调用
- 玩转Podfile
- bzoj 2946/Spoj 8222 后缀自动机
- 日期时间
- HDU 1232 畅通工程 (并查集)
- DEPENDENT SUBQUERY标记