ADB简介
- ADB全称是android debug bridge(安卓调试桥),是一个命令行工具,我们通过adb命令可以直接与android设备进行通信
- 利用adb命令我们可以模拟用户的操作,方便我们的调试过程.
ADB的使用
1.配置ADB与连接设备
1.1配置adb环境变量
- 默认环境下面可能没有adb,需要配置环境变量
- 假如 $Andorid_SDK为你的sdk目录,那么adb在sdk的platform-tools目录下
mac/linux配置如下
export PATH=$PATH:$Andorid_SDK/platform-tools/
- window配环境变量比较简单,就不说了☺
1.2 连接设备
前提是手机要进入 开发者模式 ->打开 USB调试
- 当你的第一次用usb线连接android手机的时候,就会显示允许USB调试吗?,点击确定就可以了
# 查看当前所有连接的设备
adb devices
# 结果输出:
List of devices attached
123456 device
# 前面这个123456是设备编号(不同设备显示结果编号不同)
# 当前多个设备的用usb连接到你的电脑时时候依靠这个编号区分不同设备
- 如果不小心把这个授权框关掉了而没有允许授权,想再次看到这个允许USB连接授权框授权框,可以运行如下命令
adb kill-server
adb start-server
# 其实就是先关闭授权,然后再请求USB授权
- 是不是感觉数据线连接着电脑好烦(╯﹏╰),其实当你的电脑和android设备在同一个局域网下面,我们可以利用wifi来连接
# 首先必须确保 手机用一个USB线连接着电脑的,并且USB授权成功
# 然后你必须知道设备的IP地址,假如是 192.168.123.123
adb tcpip 5555 # 利用5555端口号
adb connect 192.168.123.123:5555
# 此时 再次运行
adb devices
# 就可以看到有个用 编号是以IP地址的形式,表示成功了,此时就可以把数据线扯掉了O(∩_∩)O~~
2.基本操作
- 安装应用
# 假设在当前路径下(注意后面的路径要对)
adb install ***.apk
# 如果已安装过该应用,修改过APK后,想要再次安装要加上 -r (replace 替换)
adb install -r ***.apk
# 注意再次安装的APK只能比原版本号高,如果想安装低一点的版本号的 加上 -d (debug 调试),但是安装的重启后还是会变成原来的
adb install -r -d ***.apk
- 文件上传下载
# 假设你想要获取android设备上的文件
adb pull android设备上的文件路径 你想要存储的路径
# 同样还支持上传文件
adb push 你的文件路径 android设备上的路径
- 进入shell命令界面(类似于linux界面)
adb shell
# 执行完上一条命令之后便会进入android内部的shell命令模式
# 你可以尝试一些 linux命令例如 ls pwd ifconfig 等等
ls
pwd
ifconfig
exit # 退出android的shell,回到本地的shell界面
# ...
# 有个简便方式,可以利用 android设备的shell 执行某条命令
adb shell ifconfig # 注意连接打,这样是用 android的shell执行的命令,当前窗口还是本地的shell命令界面
- 录制屏幕和截屏
# 截屏(注意是截全屏)
adb shell screencap 截图存储路径
# 例如
adb shell screencap /sdcard/screen.png
# 录制屏幕(录制全屏,没有声音!!!,时间单位是秒)
adb shell screenrecord --time-limit 录制时间 视频存放地址
# 举例(录制一分钟视频放在 /sdcard 目录下)
adb shell screenrecord --time-limit 60 /sdcard/record.mp4
# 如果想看视频,可以保存到本地看,用上面的命令下载下来
adb pull /sdcard/record.mp4 本地路径
3.重要操作
- 调用活动管理器(am 全称activity manager)
# 这些命令必须在shell模式下执行
adb shell # 首先进入shell模式
# 启动intent指定的活动 利用 start
# 当我们知道这个应用的报名以及要打开的活动名称,利用 -n 参数(以打开设置为例)
am start -n com.android.settings/com.android.settings.Settings
# 也可以指定action,此时使用 -a 参数 ,使用 -d 携带数据 (以打开浏览器为例)
am start -a andorid.intent.action.VIEW -d https://www.baidu.com
# 打开信息界面
am start -a android.intent.action.SENDTO -d sms:10086 --es sms_body "hello"
- 包管理器器(pm 全称package manager)
pm list packages # 列出所有的包名
# 其携带参数
# -e 只输出启用的包
# -s 只输出系统的包
# -3 只输出第三方的包
# ...
- 注意不用刻意进入andorid 设备的shell模式
# 比如上述查看所有的包名,也可以
adb shell pm list packages
4.好玩的命令
- 向EditText输入一段文字(在选中状态下)
# 据说是这样,但是我的设备上并没有测试成功(;′⌒`)
adb shell input text "text"
- 模拟按键
# 这里列举几个
# home键 3
# 返回键 4
# 回车键 66
# 退格键 67
adb shell input keyevent 3
- 点击屏幕事件
# 注意前面是屏幕上x坐标,后面是y坐标
adb shell input tap 200 200
- 屏幕滑动事件
# 前面是滑动的 起始位置(x,y),后面是终止位置(x,y)
adb shell input swipe 400 100 400 300
5.指定设备 -s
# 指定设备用 -s
# 前面所有的命令前面都可以加上-s 指定是哪一个
# 查看设备编号
adb devices
# 结果输出:
List of devices attached
123456 device
# 那么我们可以这样
adb -s 123456 shell # 打开编号为123456的android设备的shell
adb -s 123456 shell am start -n com.android.settings/com.android.settings.Settings
adb -s 123456 install ***.apk
# ...