adb
adb下载 下载完是一个zip格式,解压到某一个目录就可以
配置环境变量 找到存放adb的位置,复制路径 然后到环境变量的位置 右键此电脑-属性-高级系统设置-环境变量 在系统变量中找到Path,然后把刚才复制的路径粘过去,点击确定,保存 然后打开cmd,adb version看看如果出了版本号,就说明装成功了 adb命令 1、连接手机:adb devices 2、进入Android设备:adb shell 当电脑上连接设备不止一台时(只有一台模拟器一台手机),指定设备:adb -e shell / adb -d shell -e:连接到当前电脑上已经连接的唯一的一台模拟器 -d:连接到当前电脑上已经连接的唯一的一台真机
当电脑上连接设备不止一台时(有多台模拟器多台手机),指定设备:adb -s MYQUT19C06021644 shell
进入到Android系统后,里面的命令就和linux一样了 也可以这样 把adb shell 当成一个管道,把ls传到Android中执行,执行完之后把结果再通过管道给返回来 这两种其实是不一样的,一个在android系统里边,一个在Windows系统里边
3、列出来当前系统里安装了哪些应用:adb shell pm list package -s:列出系统的包名,adb shell pm list package -s -3:测试中接触的大多都是第三方的,后来装上去的,直接-3就可以,adb shell pm list package -3 从一堆包名中过滤出我想要的:mac和Linux用grep,Windows里用findstr 或者后面直接跟关键字,也可以过滤出来
4、想给系统里安装软件:adb install 安装包存放路径 安装成功下面会有Success。 如果应用已经存在,再次安装,会报错,显示应用已存在 想让应用直接覆盖,需要-r,adb install -r 安装包存放路径 假设手机安装的apk是高版本,想要安装一个低版本的apk,需要-d -r,adb install -d -r 安装包存放路径
5、卸载手机里的软件:adb uninstall 包名 -k:adb卸载的时候默认删除数据,加了-k后会保存数据,adb uninstall -k 包名 6、文件的上传与下载,电脑上的文件上传到Android,android中的文件下载到本地 上传:adb push 文件名(文件路径) android上的存放路径 下载:adb pull 要下载文件的存放路径 .(最后这个点代表保存到当前目录下) 7、截屏:adb shell screencap -p 文件名(存放路径+文件名) 回车后没有报错就是截屏成功 录屏:adb shell screenrecord 文件名(文件管理器的根目录,存放路径+文件名) Ctrl+C是停止 8、查看日志:adb logcat(展示从开机以来到现在的所有日志,日志缓冲区的日志全打出来) 日志级别
- I:Information
- D:Debug
- W:warn
- E:Error
清空之前的日志:adb logcat -c 把之前日志清空之后再抓日志就没有输出了,这时再操作,抓出的日志就是当前操作的所有日志了
把logcat的内容保存下来:adb logcat > logcat.log(把日志内容重定向保存到logcat文件里) 过滤日志 只打出警告的日志:adb logcat *:W 如果设置低等级的,那么高等级的日志也会打出来。设置的是warn,那么warn及以上等级的都会被打出来
adb shell 后面是$符号的没有root权限,可能有些命令无法使用,需要root权限(#符号)才可以 查内核日志:adb shell dmesg(linux的内核日志,系统最底层的日志,一般也不看) 9、查看当前设备的电量:adb shell dumpys battery
monkey
monkey:安卓系统自带的,用来测试系统或应用的稳定性。 monkey是安卓系统自带的命令,想查看需要root权限,否则是看不到的 用中括号括起来的一般是可选参数,没括起来的是必选参数 COUNT是次数的意思,至少要告诉monkey想跑多少次测试
1、对系统做测试:adb shell monkey 50(count是可变的) 2、对应用做测试:adb shell -p 指定要测试应用的包名 count(不管前面加多少个参数,count一定是放在最后的,实际应用中一万次起步) 后台会自动调起应用 -v:查看对应的日志(想要看几级日志,就加几个-v,一个一级,两个两级,三个三级…) 保存日志也是重定向就可以 伪随机 用monkey跑应用如果真的出现了bug,测试人员需要复现bug。 monkey里每一次执行都是随机的事件,既然是随机的那要怎么复现? 把日志开到最高级别后,日志里面会有一个seed。如果后面再跑的时候指定了seed,那么两次执行的顺序、节奏、动作将会一样。 指定seed:-s seed 我保存了monkey的seed,然后不指定seed执行一遍,命名为monkey1,再指定seed执行一遍,命名为monkey2。那么monkey和monkey2的seed,应该是相同的,而monkey1是不同的seed monkey和monkey2的执行顺序也是完全一致的 加延迟:–throttle time(500是毫秒,这个时间是以毫秒为单位的,是指每一次动作之间的延迟) 当应用遇到无响应、延迟、安全异常等,还接着测:–ignore-crashes、–ignore-timeouts、–ignore-security-exceptions 指定事件的百分比 触摸:–pct-touch PERCENT 拖动,滑动:–pct-motion PERCENT 轨迹球(上下左右,方向):–pct-trackball PERCENT 系统的key:–pct-syskeys PERCENT 导航:–pct-nav PERCENT 应用跳转:–pct-appswitch PERCENT
日志报错
可以直接搜关键字给开发(ANR,crash,exception)
|