adb常用命令
adb常用命令(常看设备、启动关闭adb服务)
-
adb devices 常看手机的设备ID名称以及状态
emulator-5554 device emulator-5554表示的是手机设备的ID名称, device表示设备处于在线状态,
如果不在线显示的是offline 如果adb服务没有启动,下发该命令时,会自动的去启动adb的服务
-
adb start-server 启动adb服务
-
adb kill-server 关闭adb 服务
获取包名和界面名
-
包名: app包名 ,通过app的包名来区分不同的app,app包名是唯 一的
-
界面名(启动名): 相当于web页面当中的链接地址,在app当中,每个界面都有一个名字
原因:自动化过程当,需要通过app的包名和界面名来启动app。
-
操作步骤: adb命令
-
在手机或者模拟器上面打开app
-
windows命令一:adb shell dumpsys window windows | findstr mFocusedApp
-
windows命令二: adb shell dumpsys window |findstr "usedApp"
com.android.settings/.Settings com.android.settings是包名, .Settings是界面名 通过 / 分隔包名和界面名
LINUX/MacOS命令一: adb shell dumpsys window windows | grep mFocusedApp
LINUX/MacOS命令二: adb shell dumpsys window |grep "usedApp"
-
-
通过aapt获取app的包名和界面名
-
aapt dump badging D:\BaiduNetdiskDownload\apptools\apk\xuechebu.apk 后面表示的是app安装包的路径及名称
包名: package: name='com.bjcsxq.chat.carfriend' # package:name 后面的字符串表示的是app的包名
界面名: launchable-activity: name='com.bjcsxq.chat.carfriend.module_main.activity.SplashActivity' launchable-activity: name后面的字符串是界面
-
安装卸载app
-
app安装 adb install 路径/app安装包名称
-
app卸载 adb uninstall 包名
上传下载文件
-
上传 将电脑上的文件上传到手机
adb push 电脑上的文件路径 手机的路径
例子:adb push ./monkey.txt /sdcard
-
下载文件 从手机上下载文件到本地
adb pull 手机的文件路径 电脑的文件夹路径
例子:adb pull /sdcard/monkey.txt D:\opt
查看日志信息
为什么要获取日志信息:用来给开发定位问题。
adb logcat 来查看相关的日志信息
测试app的启动速度(性能测试)
-
测试app启动速度的命令:
adb shell am start -W 包名/界面名
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.baidu.homework/.activity.user.passport.ChoiceLoginModeActivity } Status: ok Activity: com.baidu.homework/.activity.user.passport.ChoiceLoginModeActivity ThisTime: 3345 TotalTime: 3345 WaitTime: 3378
-
需要大家关注的是TotalTImie的时间值,那么在实际的测试过程当,会进行多次测试,然后取平均值。
稳定性测试 (8小时)
-
monkey 集成在adb工具当中,主要用来做稳定性测试用的, monkey是通过java语言编写的一种稳定性测试工具。
主要用来测试app会不会出现crash(崩溃)的情况。
相当于让一只猴子来随机操作app,所有的操作都有可能出现,长时间的操作来测试app会不会出现问题。
-
monkey常用的参数
-
-p 参数 对指定的app进行随机操作
adb shell monkey -p com.baidu.homework 100 (100次随机事件)
-
-v 参数 表示的是记录信息的级别
level 0:adb shell monkey -p com.baidu.homework -v 100 默认级别
level 1: adb shell monkey -p com.baidu.homework -v -v 100 打印出来的信息会比较详细,只打印跟本程序相关的日志信息
level 2: adb shell monkey -p com.baidu.homework -v -v -v 100 打印出来的信息会更多,会显示出其他程序运行的信息
-
-s 用于指定伪随机数。如果两次的伪随机数相同,那么两次的操作步骤、流程、操作事件完全一样。
主要的作用,就是用来复现上次的问题
adb shell monkey -p com.baidu.homework -v -v -s 10 100
-
--throttle 用于指定随机事件的间隔时间, 单位是毫秒
adb shell monkey -p com.baidu.homework -v -v --throttle 3000 -s 10 100
组合使用:
adb shell monkey -p com.baidu.homework --throttle 500 --pct--touch 10 --pct-motion 50 -v -v -s 100 300> log.log
--pct--touch 10 触模(10表示的是整个随机同件中的百分比)
--pct-motion 50 滑屏(50表示的是整个随机同件中的百分比)
-
-
日志分析
如果在日志里面出现了 ANR(application not responsing)
如果日志中出现了Exception,可能程序崩溃。
adb 操作命令
-
手势操作命令
-
模拟点击事件
adb shell input tap x y # x y表示的是坐标点 参数之间用空格隔开
-
模拟滑屏事件(参数之间用空格隔开)
adb shell input swipe startx starty endx endy # startx, starty 表示的是起始点坐标,endx,endy表示的是终点坐标
-
模拟键盘操作
adb shell input keyevent 键值 (3 表示的HOME键 4 表示的返回键 66表示的回车键)
-
模拟输入操作
adb shell input text 内容 内容表示要输入的内容,另外输入的内容不能是中文
-
-
offline的设备,记得重启一下adb服务
-
如果电脑上面连接了多个模拟器或者是手机。那么需要加上一个参数 -s device_name
adb -s emulator-5554 shell input keyevent 4