找包名
直接获得目前打开的app的包名以及启动页(Activity)
adb shell dumpsys window w |findstr \/ |findstr name=
还可以去读文件获取包名
路径 data/app 第三方安装的app
用adb命令快速查看某应用appPackage及appActivity的方法
1> adb shell pm list packages 列出所有的包名(不知道包名的情况,需要执行查找包名)appPackage
注:加上-3显示第三方安装的安装包
2> adb shell dumpsys package XXX 查看某个包的具体信息(前提是需要知道包名是什么) appActivity
3> adb shell dumpsys activity | grep mFocusedActivity 查看当前resume的是哪个activity
4> adb logcat | grep ActivityManager 查看当前正在运行的Activity
5> adb logcat | grep Displayed 查看当前正在运行的Activity
monkey 指令及用法
monkey常用参数
-p 指定包名 (所有命令都在此包内执行,如不指定,则在整个系统内执行)
-v log详细程度(最高支持’-v -v -v’最详细)
-s 种子 (指定种子后,同一条命令在任意时间、地点的执行顺序都相同)
--throttle 单步延时(每步操作间隔,单位毫秒)
--kill-process-after-error 出错时杀掉进程
--ignore-timeouts 忽略超时错误
--ignore-security-exceptions 忽略许可错误
|
基本参数 |
说明 |
|
-p <allowed-package-name> |
指定一个或多个包 |
|
-s <seed> |
指定一个随机数生成器的seed值 |
|
--throttle <milliseconds> |
指定事件之间的固定延迟(ms) |
|
-v |
指定反馈信息级别(信息级别就是日志的详细程度) |
|
-c <main-category> |
指定一个或多个类别名 |
|
-f <scriptfile> |
运行指定的monkey脚本 |
|
事件参数 |
说明 |
|
--pct-touch <percent> |
指定触摸事件百分比 |
|
--pct-motion <percent> |
指定动作事件百分比 |
|
--pct-trackball <percent> |
指定轨迹事件百分比 |
|
--pct-syskeys <percent> |
指定系统按键事件百分比 |
|
--pct-nav <percent> |
指定基本导航事件百分比 |
|
--pct-majornav <percent> |
指定主要导航事件百分比 |
|
--pct-appswitch <percent> |
指定应用启动事件百分比 |
|
--pct-flip <percent> |
指定flip(弹)事件的百分比 |
|
--pct-anyevent <percent> |
指定其他类型事件百分比 |
|
--pct-pinchzoom <percent> |
指定缩放(捏)事件百分比 |
|
--pct-permission <percent> |
指定 |
|
调试参数 |
说明 |
|
--ignore-crashes |
忽略因崩溃或异常引起的停止运行 |
|
--ignore-timeouts |
忽略应用发生超时错误(ANR) |
|
--ignore-security-exceptions |
忽略应用发生任何权限错误 |
|
--monitor-native-crashes |
监视并报告monkey运行时native code的崩溃事件 |
|
--ignore-native-crashes |
忽略因native code的崩溃事件 |
|
--kill-process-after-error |
在应用出错后通知系统杀死发生错误的进程 |
|
--hprof |
在事件序列前后立即生成profilfing report |
|
--dbg-no-events |
监视应用程序所调用的包之间的转换 |
|
--wait-dbg |
暂停执行中的monkey,直到有调试器与它连接 |
举例:
adb shell monkey -p com.motk -v -v -v -s 12 --throttle 5001000
日志分析
1、查找出差步骤:
a、找到monkey里哪个地方出错
查看Monkey执行的是哪一个Activity,在switch后面找,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。
b、查看Monkey里面出错前的一些事件动作,手动执行该动作
Sleeping for XX milliseconds这是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件,
Sending XX 就是代表一个操作,如下图的两个操作 应该就是一个点击事件。
c、若以上步骤还不能找出,则可以使用之前一样的seek再执行monkey命令一遍,便于复现
2、测试结果分析:
a、程序无响应,ANR问题:在日志中搜索“ANR”
b、崩溃问题:在日志中搜索“CRASH”
c、其他问题:在日志中搜索”Exception”