adb环境搭建及使用
adb是什么
ADB的全称为Android Debug Bridage,就是起到调试桥的作用。通过ADB工具我们可以调试Android程序。
环境准备
配置java环境
官网下载jdk安装包,安装jdk,配置环境变量(将java/bin和jre/bin目录配置到系统变量的PATH中去)
配置adb环境
官网下载platform-tools,解压后把add.exe目录放到系统环境变量PATH中。
验证
打开cmd窗口,输入adb version,回车显示版本号表示配置成功。
连接设备
连接模拟器–wifi
-
打开模拟器
-
打开开发者模式
-
设置中,点击关于本机,连续多次点击版本号(本机版本号或者品牌版本号),直至“您已处于开发者模式,无需进行此操作”
-
进入开发者模式选项,打开USB调试
- 检查是否连接成功:显示已连接的设备
zydeMacBook-Air:~ zy$ adb devices
List of devices attached
192.168.56.113:5555 device
以上显示连接成功。
真机连接
通过USB数据线连接
数据线功能:充电、文件传输、adb驱动。最好选择原装数据线,如果是网购平台买来的配置数据线,可能会少功能,比如说,缺少adb驱动功能。
- 使用数据线连接真机和PC
- 真机打开开发者模式
- 鸿蒙系统真机如何打开开发者模式:设置-关于手机-版本号,连续点击版本号。开发者模式在系统和更新里面有开发人员选项。开启USB调试。
- 小米手机如何打开开发者模式:设置-我的设备-MIUI版本号,连续点击版本号。开发者模式在更多设置里面有开发者选项。开启USB调试。
- 使用adb devices检查是否连接成功
第一次连接着台真机可能会出现adb devices显示设备unauthorized,意思是手机未授权。此时查看真机,会弹出是否允许USB调试的授权框,勾选始终允许使用这台计算机进行调试,并点击确定。再执行adb devices就会恢复正常。
通过Wi-Fi连接
- 前提条件:
-
手机和电脑在同一个局域网
-
关闭电脑防火墙(请百度不同系统关闭防火墙的方式)
-
退出杀毒软件
- 通过adb connect命令来连接设备
zydeMacBook-Air:~ zy$ adb connect 192.168.110.121:5555
failed to connect to '192.168.110.121:5555': Connection refused
5555是默认的真机连接adb的端口
出现connection refused,排查方向,查看5555端口连接情况
zydeMacBook-Air:~ zy$ adb tcpip 5555
error: no devices/emulators found
显示5555端口未连接设备。
如果显示more than one device/emulator,先使用adb disconnect断开连接。如果连接了其他设备,无法通过Wi-Fi连接真机。断开连接后再尝试通过Wi-Fi连接手机。如果依然显示connection refused,请往下看。
adb显示connection refused的解决方法
原因: adbd没有监听网络连接
解决: 打开adbd服务的5555端口
先用USB连接手机,然后执行
zydeMacBook-Air:~ zy$ adb shell
HNALA7:/ $ setprop service.adb.tcp.port 5555
之后去设置里关闭再重新打开"USB调试"选项。然后断开数据线连接,通过adb connection命令连接手机。
zydeMacBook-Air:~ zy$ adb connect 192.168.110.121:5555
connected to 192.168.110.121:5555
adb基本命令
常用命令
- adb devices——识别当前已连接的所有设备(必学)
- adb logcat——系统日志抓取(必学)
移动端测试关注crash、anr(无响应)
zydeMacBook-Air:~ zy$ adb logcat -v time>/Users/zy/Desktop/logcat0324.txt
开始移动端测试后,使用该命令,它会记录手机上所做的所有操作,并将数据重定向到指定路径。-v以日志的形式输出,time以时间信息为主线。
- adb install/uninstall——安装和卸载apk(必学)
zydeMacBook-Air:~ zy$ adb install /Users/zy/Downloads/App_JCSample2.10.1.apk
Performing Streamed Install
Success
可以通过直接把apk拖进命令行窗口来快速补充路径。
zydeMacBook-Air:~ zy$ adb uninstall com.juphoon.mmetester
Success
参数是包名。包名是应用在手机上的唯一识别码。
- adb pull/push——导入和导出文件(必学)
以用该命令抓取应用运行日志为例:
zydeMacBook-Air:~ zy$ adb pull /sdcard/Android/data/com.juphoon.cloud.sample/files/log /Users/zy/Desktop/log_test
/sdcard/Android/data/com.juphoon.cloud...ed. 2.5 MB/s (6266184 bytes in 2.408s)
用法:adb pull 日志所在所在路径 导出到本地的路径
另一个用法:
应用无响应后,系统会输出anr日志,anr日志保存在手机/data/anr目录下traces.txt文件中。工作过程中如果出现系统无响应的情况,需要将traces.txt命令导出到本地,提交给开发。
zydeMacBook-Air:~ zy$ adb shell
HNALA7:/ $ cd /data/anr
HNALA7:/data/anr $ ls
anr_2022-03-03-18-02-33-971
如上图所示,因为我的手机里面没有生成traces.txt文件,这里不贴出应用命令了。
- adb start/kill-server——启动和杀掉进程
- adb shell——进入android系统内部执行shell命令(必学)
- adb shell am start——启动应用
- adb shell pm——列出应用包名
- abd shell pm list packages——查看当前连接设备或者虚拟机的所有包
- adb shell pm list packages -s——只输出系统的包
- adb shell pm list packages -3——输出所有第三方包
- adb shell pm list packages -f——输出包和包相关联的文件(安装路径)
- adb shell pm list packages -i——输出包和安装信息(安装来源)
- adb shell pm list packages “lzy”——输出包含过滤条件的包
- adb shell pm list packages -e——只输出启用的包
- adb shell pm list packages -d——只输出禁用的包
- adb shell pm list packages -u——只输出包和未安装包信息(安装来源)
- adb shell pm path packages——定位apk所在系统路径
上文提到过的命令
-
adb version——查看adb版本号
-
adb connect [ip]:[port]——通过网络的方式连接移动端
-
adb disconnect [ip]:[port]——通过网络方式断开移动端连接
-
adb tcpip 5555——启动tcpip协议的5555端口(必须连接数据线操作)
-
adb -s 设备号——指定某个设备进行操作