常用的adb流程与命令
常用的adb流程与命令
工作涉及到了Python自动化手机测试…学了一些adb然后以常用的adb使用流程来讲解相关命令。
不管接下来的工作中会使用什么样的自动化测试框架,底层应该都是会使用adb进行控制的,先行学习总结了…
下文所涉及的shell命令以windows为主
adb连接手机
前提:手机开启开发者模式(可以通过连续点击手机中的版本号开启)
然后再到开发者模式中开启USB调试,再通过USB连接电脑
一般这个时候手机会提示是否允许USB调试,手机确认后adb自动建立连接
还有手动连接的connect
命令与断开连接的disconnect
命令
adb安装apk
adb install [apk path]
如果adb连接了多个设备的情况下,可以使用-s
来指定设备id来执行命令
例如,adb -s [设备id] [command]
adb卸载app
adb uninstall [package name]
这个命令涉及到两个方面,一个是shell
,另一个是pm
adb shell
命令可以进入设备的操作命令界面
Android系统中可以使用pm
命令进行相关的包管理
我们想要使用adb进行卸载app需要提供package name
我们获取package name需要进入Android的shell中使用pm来获取包信息
pm list package
命令可以查看Android设备中安装的所有包
可以使用pm list package -3
命令获取安装的第三方包,快速锁定我们需要的包名
然后就可以通过pm uninstall com.tencent.qqmusic
来卸载我刚刚安装的QQ音乐
当然这些命令都可以稍微简化一下,可以不用进入到Android的shell界面
通过adb shell [android shell command]
来直接执行命令
例如:adb shell pm list package -3
获取设备的文件
adb pull [android path] [pc path]
推送文件到设备
adb push [file path] [android path]
启动app
adb shell am start [activity]
这个命令涉及到activity
,这个是Android开发中的东西
想获取它可以通过三个途径:
adb shell dumpsys activity | [findstr|grep] mFocuse
这个方式需要先在设备上手动启动app,保证app位于顶端视图
此时执行命令,如图所示
两个mFocus均可以启动app,命令如下:
adb shell am start com.netease.cloudmusic/.activity.IconChangeDefaultAlias
adb shell am start com.netease.cloudmusic/com.netease.cloudmusic.activity.IconChangeDefaultAlias
aapt dump badging [apk path]
执行该命令会显示出很多信息,过滤掉我们需要的就好了
这里我用的QQ音乐的apk演示,再加上QQ音乐的包名即可,同样也可以用aapt获取,
findstr package
就行问开发 问开发 问开发
停止app
adb shell am force-stop [app package name]
例如,adb shell am force-stop com.netease.cloudmusic
来关闭网易云音乐
模拟操作
一般的自动化框架会采用元素定位的方式,但底层离不开adb操作
点击操作
adb shell input tap [x] [y]
需要x,y坐标值,我们可以通过开启开发者选项中的指针位置来在设备屏幕上方获取坐标值
输入操作
adb shell input [text or var]
此命令在焦点处输入指定的文本或变量值
模拟系统按键输入
adb shell input keyevent [value]
滑动操作
adb shell input swipe [x1] [y1] [x2] [y2] [time]
提供两组坐标与完成滑动的时间,时间单位为毫秒
按住操作
其实与滑动操作类似,只是两组坐标一致或相似并且完成滑动时间较长
PS:我真的没有转测试或者测开,这是工作涉及工作涉及工作涉及…