adb是Android Debug Bridge的简称, 就是起到调试桥的作用,用来操作android设备
adb help (显示帮助信息)
adb devices (获取设备列表及设备状态)
adb install xxx.apk(安装软件)
adb install -s SerialNo xxx.apk (当有多个设备连接时,选取其中一个进行安装apk)
adb install -r xxx.apk(覆盖安装软件)
adb uninstall packageName(卸载软件)
adb push (从电脑上发送文件到Android设备)
adb pull (从Android设备中下载文件到电脑)
adb kill-server , adb start-server (结束 adb 服务, 启动 adb 服务,通常当adb出现异常时,两个命令可以一起用,来重启adb服务)
adb reboot (重启Android 设备)
adb logcat | findstr xxxxx(过滤日志信息)
adb shell (进入shell环境,即Android内核中的linux环境),然后可以使用linux基础命令,如:cat、cd、chmod、cp、date、df、du、grep、kill、ln、ls、lsof、netstat、ping、ps、rm、rmdir、top、touch、重定向符号 ">"、 ">>"、管道 "|" 。有些命令可能需要使用busybox 。
退出adb shell模式:exit
PM命令:
adb shell pm list package (列出所有的应用的包名,部分系统自带,还是自己安装)
adb shell pm list package -s (列出系统自带应用)
adb shell pm list package -3 (列出第三方应用,即自己下载安装的应用)
adb shell pm list package -f (列出所有应用包名及对应的apk名及存放位置)
adb shell pm path packageName (列出对应包名的.apk 位置)
adb shell pm list package -i (列出应用包名及其安装来源)
adb shell pm list package -f -3 -i xiaoniu (查找第三方应用中小牛在线APP的包名、apk存放位置、安装来源)
adb shell pm clear packageName (清理应用的数据)
adb shell pm install xxx.apk (安装存放于 Android 设备中apk,外部的apk可以直接用adb install)
安装失败,检查发现没有root权限,需要root权限,才能用pm安装,比如下面(换了一台root过的手机)
adb shell pm uninstall packageName (同adb uninstall , 后面跟的参数是应用的包名)
adb shell pm dump packageName (列出指定应用的dump信息,里面有各种信息,可自行查看)
adb shell pm set-install-location 0/1/2 (设置应用安装位置,0:默认为自动、1:默认为安装在手机内部、2:默认安装在外部存储)
adb shell pm get-install-location (获取应用安装位置,[0/auto]:默认为自动、[1/internal]:默认为安装在手机内部、[2/external]:默认安装在外部存储)
AM命令:
adb shell am start -n 包(package)名/包名.活动(activity)名称
adb shell am start -n com.xiaoniu.finance/com.xiaoniu.finance.ui.LaucherTaskActivity 启动小牛在线APP
adb shell am start -n com.xiaoniu.finance/.ui.LaucherTaskActivity 效果同上
adb shell am start -S com.xiaoniu.finance/.ui.LaucherTaskActivity (先停止目标应用,再启动)
adb shell am start -W com.xiaoniu.finance/.ui.LaucherTaskActivity (等待应用完成启动)
adb shell am monitor (启动监控 crash与ANR)
adb shell am force-stop packageName (强制结束某个应用)
adb shell am kill PID (杀掉某个服务的进程,杀全部进场用kill-all,需要用到root权限,还要先获取PID)
INPUT命令:
adb shell input text test (发送文本内容,不能发送中文,要先将键盘设置为英文键盘再执行此命令)
adb shell input keyevent KEYCODE_HOME (发送按键事件,效果同点击home键一致)
adb shell input keyevent 3 (同上,效果同点击home键一致)
adb shell input tap 500 500 (对屏幕发送一个触摸事件,点击屏幕上坐标为 500 500 的位置)
adb shell input swipe 900 500 100 500 (从右往左滑动屏幕,如果版本不低于 4.4 , 可以模拟长按事件)
adb shell input swipe 500 500 501 501 2000 (在较小的距离内,在较长的持续时间内进行滑动,最后表现出来的结果就是长按动作)
2. screencap 截屏命令:
adb shell screencap -p /sdcard/screen.png ( 截图命令,保存截图到/sdcard/,不能直接保存到本地)
screenrecord 录屏命令:
adb shell screenrecord sdcard/record.mp4 (设备屏幕录制命令,执行此命令后操作手机屏幕,按ctrl + c 可结束录制,录制结果保存至sdcard,可另外使用adb pull命令将视频发送到本地电脑中)
三、Monkey命令,至少三种不同测试策略:
(1)、策略:执行随机操作10000次,不指定操作序列,忽略超时、crash、安全异常:
adb shell monkey -p com.xiaoniu.finance -s 123 --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v -v -v 2000 > d:\xnonline-monkey-test1.txt
(2)、策略:执行随机操作10000次,指定操作序列,操作touch 占50%,其余两种操作(motion + appswitch)各25%,忽略超时、crash、安全异常:
adb shell monkey -p com.xiaoniu.finance -s 123 --throttle 500 --pct-touch 50 --pct-motion 25 --pct-appswitch 25 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error -v -v -v 2000 > d:\xnonline-monkey-test2.txt
(3)、策略:执行随机操作10000次,指定操作序列,操作motion占50%,其余两种操作(touch + appswitch)各25%,忽略超时、crash、安全异常:
adb shell monkey -p com.xiaoniu.finance -s 123 --throttle 500 --pct-touch 25 --pct-motion 50 --pct-appswitch 25 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error -v -v -v 2000 > d:\xnonline-monkey-test3.txt
(4)、策略:执行随机操作10000次,指定操作序列,操作appswitch占50%,其余两种操作(touch + motion )各25%,忽略超时、crash、安全异常:
adb shell monkey -p com.xiaoniu.finance -s 123 --throttle 500 --pct-touch 25 --pct-motion 25 --pct-appswitch 50 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --kill-process-after-error -v -v -v 2000 > d:\xnonline-monkey-test4.txt