一、什么是adb
adb的全称为Android Debug Bridge,官方提供的用于操作安卓设备的工具。
二、adb用来干什么?
在电脑终端通过命令行:
- 打开收手机应用;
- 传输文件;
- 点击、输入、滑动等;
- 硬件操作、返回、回到首页;
- 输出性能指标
三、adb工作原理:
采用客户端-服务器模式(C/S模式),分为:
PC:
客户端:adb client
服务端:adb server
Target Machine:Device/Emulator
守护进程:adbd daemon
四、adb环境搭建:
adb命令零基础快速入门–深入理解掌握app自动化测试底层技术_哔哩哔哩_bilibili
java 1.8 :下载+配置环境变量
Android SDK :下载+配置环境变量
检查 adb 是否搭建成功adb shell
五、连接移动设备以及查看设备状态
WINDOWS:模拟器使用 adb connect [IP]
macOS 系统中连接模拟器不需要执行 connect 命令,直接执行:
adb kill-server && adb devices 命令即可。
真机插入USB数据线调整到调试模式,电脑端安装手机驱动,即可获取移动设备名:
adb devices
adb get-state
六、Adb命令格式:
adb [-d|-e|-s < serial Number>] < command>
-d 指定当前唯一通过USB连接安卓设备为命令目标
-e 指定当前唯一运行的模拟器为命令目标
-s [device名字 ]指定相应的设备为命令目标
七、安装
普通安装:adb install <apk路径>
覆盖安装:adb install -r <apk路径>
卸载:adb uninstall 包名
保留配置文件的卸载:adb uninstall - k < 包名>
八、adb启动页面
dumpsys 是一种在 Android 设备上运行的工具,它可提供有关系统服务的信息。我们可以在 adb 中使用命令行调用 dumpsys,用以获取链接的设备上运行的所有系统服务的信息。
package包:android应用唯一的标识
Activity:应用页面,一个页面就是一个activity
获取当前页面名: adb shell "dumpsys window | grep mCurrentFocus"
adb shell dumpsys activity | grep mFocusedActivity
adb打开页面:adb shell am start -n <包名>/<activity名>
获取启动页面:adb logcat ActivityManager:I | findstr "cmp"
强制停止应用(App):adb shell am force-stop<包名>
adb uiautomator
adb 命令还支持直接获取 App 的页面信息。页面信息包含了页面中元素的属性,我们做自动化测试时,可以通过这些元素的属性去定位元素。获取到的页面元素布局会输出到一个 xml 文件中。
获取当前窗口的 UI 布局简化信息:adb shell uiautomator dump --compressed
不指定输出文件路径时,dump 输出的文件默认存储路径为/sdcard/window_dump.xml。
我们可以通过 adb pull /sdcard/window_dump.xml F:\Monkey命令把文件传输到计算机中,然后用 UI Automator Viewer 工具打开文件并查看页面布局。
指定输出文件路径:adb shell uiautomator dump file<设备路径>。
九、adb shell清理缓存
activity manger:am
package manger:pm
打开adb:adb shell
查看当前日期:adb shell date
查看目录结构:adb shell ls
窗口打印:adb shell cat
查看当前CPU使用情况:adb shell cat /proc/cpuinfo
查看当前内存使用情况:adb shell cat /proc/meminfo
查看手机应用:adb shell pm list packages
查看系统自带应用:adb shell pm list packages -s
显示第三方应用:adb shell pm list packages -3
清除应用数据: adb shell pm clear [包名]
进入应用缓存数据位置:cd /data/data/[包名]
十、手机和电脑传输文件
adb push 电脑路径 手机路径
adb pull 手机路径 电脑路径
adb shell 可以进入到手机系统环境
十一、adb查看手机日志:adb logcat
日志的级别:
V-明细verbose(最低优先级)
D―调试debug
l一信息info
W-警告warn
E一错误error
F一严重错误fatal
S-无记载silent(最高优先级,绝不会输出任何内容)
adb查看手机日志:
adb logcat 打印默认日志数据
adb logcat -v time 打印时间
adb logcat -v color 使用不同颜色来显示每个优先级
adb logcat -f <filename> 将日志输出到文件
adb logcat> log.log/pc端文件路径 保存日志到电脑端
adb logcat -c 清理日志
依据条件过滤日志:
查看日志帮助命令:adb logcat --help
adb logcat -v time "*:W" 打印warning以及以上级别的日志
adb logcat ActivityManger:D '*:S' 过滤tag为ActivityManger,level 为debug及以上级别的日志
如果设置的过滤条件为日志级别的话,将会过滤出该等级以及该等级以上等级的日志:
adb logcat "*:W" 过滤日志级别为W以及以上的日志
十二、模拟按键操作
1、打开指针位置设置:开发者模式->输入-> 指针位置
2、adb shell input 命令
点击:adb shell input tap (x,y) //括号可省略
模拟输入:adb shell input text [文本](仅支持英文)
模拟页面的滑动事件:adb shell input swipe (x1,y1) (x2,y2) <滑动时长>
后面可以加时间,单位:毫秒
返回:adb shell input keyevent 4
Home主页:adb shell input keyevent 3
音量+:keyevent 24
音量-:keyevent 25
key值查询网站:
https://developer.android.com/reference/android/view/KeyEvent
https://developer.android.google.cn/reference/android/view/KeyEvent
KeyEvent常用键值
1、数字键:
KEYCODE_0 - KEYCODE_9
2、字母键:
KEYCODE_A - KEYCODE_Z
3、功能键:
KEYCODE_DEL(删除键),KEYCODE_ENTER(回车键),KEYCODE_ESCAPE(ESC键)
4、移动键:
KEYCODE_DPAD_UP(上键),KEYCODE_DPAD_DOWN(下键),KEYCODE_DPAD_LEFT(左键),KEYCODE_DPAD_RIGHT(右键),KEYCODE_DPAD_CENTER(中心键)
5、系统键:
KEYCODE_BACK(返回键),KEYCODE_HOME(Home键),KEYCODE_MENU(菜单键),KEYCODE_VOLUME_UP(音量加键),KEYCODE_VOLUME_DOWN(音量减键)
十三、Adb 获取性能指标:
查看当前CPU使用情况:adb shell dumpsys cpuinfo(均值)
查看当前系统内存使用情况:adb shell dumpsys meminfo
查看某个应用内存使用情况:adb shell dumpsys meminfo [应用包名] PS:如何获取参照前节
实时查看进程信息(进程号等,和linux是一样的):adb shell top (实时)
linux/Mac某个进程信息:adb shell top | grep [包名]
windows查看进程信息: adb shell top | findstr [包名]
top 后面可以加参数-d 1 表示每一秒打印一次:adb shell top -d 1 | grep <包名>
电池信息:adb shell dumpsys battery
性能相关的具体用法,官网:https://developer.android.com/docs
十四、设备截图/录屏
截图:adb shell screencap<设备路径>
录屏:adb shell screenrecord<设备路径>