一.adb工具简介

1.什么是adb工具

adb(android 调试桥)用于电脑和 android 手机的连接,可以通过 adb 工具,用电脑来操控手机。adb 是谷歌提供的一个开发用的辅助工具,包含在 android studio 中。谷歌后来提供了单独的平台工具的包(https://developer.android.google.cn/studio/releases/platform-tools),包含了adb。另外各个 android 模拟器中也包含了 adb 工具。

2.adb工具的原理

adb 工具包含:

  • adb server
  • adb client
  • adb daemon(运行在 android 手机中)

3.电脑连接手机的准备

  • 如果出现电脑和手机无法连接,可以考虑重启 adb server,或者是重启手机。
  • 常见的模拟器比如 genymotion(可以自由选择不同的 android 版本,还支持来电和短信的模拟)、逍遥模拟器、夜神模拟器。实际工作中通常是用真机进行测试, 除非是一些手游,会考虑模拟器的支持。
  • adb 工具本身有版本,可以通过 adb version 来查看。如果尝试用 sdk中带的 adb 工具连接模拟器,可能会出现提示 client 的版本和 server 的版本不一致。用其中一个 adb 覆盖另外一个 adb 即可。

电脑通过 adb 连接手机,手机中需要做一些设置。

  • 进入模拟器或者手机的设置菜单
  • 点击关于平板电脑
  • 连续点击最下面的版本号,进入开发者模式
  • 进入开发者选项
  • 打开 usb 调试(逍遥模拟器不打开也 ok)
  • 对于真机而言,还需要注意“选择 usb 配置”不能是仅限充电。
  • 如果是华为品牌的真机,还可能需要安装华为的手机助手

二.常用的adb命令

1.adb devices

该命令用于查看电脑连接的设备(手机或者模拟器)

android里面执行adb明林 安卓手机端运行的adb工具_软件测试


127.0.0.1:21503 对应的就是模拟器,21503 是逍遥模拟器的默认端口。

127.0.0.1:21503 对应手机的序列号,用于区分不同的手机设备。序列号的后面是

device 表示设备正常,如果发现是 offline,一般通过重启手机/模拟器可以解决。

可以通过 adb connect 或者 adb disconnect 来连接或者断开手机。对于真机而言, 一般可以通过 ip 地址来进行连接,要求手机和电脑在同一个局域网内

android里面执行adb明林 安卓手机端运行的adb工具_android里面执行adb明林_02


注意:如果多次重启模拟器或者真机,仍然连接不上设备。可以考虑是模拟器文件中的adb.exe与sdk中的不兼容,将sdk中的adb.exe文件替换到模拟器文件中。

2.adb install

该命令用于在手机上安装应用。

adb install apk文件路径

如果电脑同时连接多个手机,会提示错误,需要通过-s 参数来明确在哪个手机上安装。

adb -s 序列号 install apk 文件路径

android里面执行adb明林 安卓手机端运行的adb工具_文件路径_03


adb install 时也可能失败,常见的原因有:

1、app 对应的 sdk 的最低版本比 android 系统对应的 sdk 版本要高

2、app 对应的处理器不兼容

3.adb uninstall

adb uninstall 包名

包名可以在 androidmanifest.xml 文件中查看到

android里面执行adb明林 安卓手机端运行的adb工具_文件路径_04


androidmanifest.xml 文件由于进行扰码,所以查看起来不方便,可以通过 aapt 工具来查看包名。aapt d badging apk文件路径

android里面执行adb明林 安卓手机端运行的adb工具_文件路径_05


通过包名卸载 app。

android里面执行adb明林 安卓手机端运行的adb工具_android里面执行adb明林_06


通过包名卸载 app。

android里面执行adb明林 安卓手机端运行的adb工具_文件路径_07

4.adb pull

该命令用于将手机上的文件取到(复制到)电脑上。

adb pull 手机上文件路径 电脑上文件路径

android里面执行adb明林 安卓手机端运行的adb工具_软件测试_08


需要注意 android 系统和 windows 系统中斜杠线的方向。

实际工作中一般会从手机上获取截图、录频、数据库文件、配置文件、日志文件等。

5.adb push

该命令用于将电脑上文件复制到手机上。

adb push 电脑文件路径 手机文件路径

android里面执行adb明林 安卓手机端运行的adb工具_android_09


实际工作中一般从电脑上复制一些复杂的测试文件到手机上去。

6.adb shell

该命令用于进入 android 系统。

android里面执行adb明林 安卓手机端运行的adb工具_android里面执行adb明林_10


针对真机操作 adb shell,往往看到的用户是 shell 用户,可以通过 adb root 切换为

root 用户,前提是真机已经 root 过。

android 系统中有几个文件夹需要注意:

1、/data/app,用来放用户自己安装的 app 的 apk 文件

android里面执行adb明林 安卓手机端运行的adb工具_python_11


2、/data/data,用来放系统应用和用户应用的安装目录的

android里面执行adb明林 安卓手机端运行的adb工具_python_12


3、运行考研帮的 app 后,相应目录下出现新的文件夹和文件。

android里面执行adb明林 安卓手机端运行的adb工具_文件路径_13

7.adb kill-server/adb start-server

这组命令用于重启 adb 服务器。

8.adb shell screencap

该命令用于截图。
adb shell screencap -p 截图文件路径(手机上的路径)

9.adb --help

查看帮助命令

10.adb logcat

查看adb日志
adb logcat -v time -s *:E > d:\logcat.txt -v time 是给日志加上时间戳,-s 是对日志进行过滤,*:E 表示只看错误及以上的信息。
日志信息级别分为:

1、V
2、I,系统信息
3、D,调试信息
4、W,警告信息
5、E,错误信息
实际测试时,操作同时保存 logcat 的日志,操作结束后,可以在 logcat 日志中进行关键字查询,比如 error、exception、anr、crash 等等。

11.adb bugreport

查看 android 系统启动日志。在对手机进行整机测试时可以查看该日志。单独对
app 进行测试不需要关注

12.adb shell dumpsys battery

查看设备状态

android里面执行adb明林 安卓手机端运行的adb工具_android里面执行adb明林_14

13.adb shell dumpsys activity top

获取最上层的应用的信息(包名和活动名)

一般打开被测app首页后,在终端运行该命令来获取app的相关信息

android里面执行adb明林 安卓手机端运行的adb工具_python_15

14.adb shell dumpsys activity activities

获取当前的任务列表

android里面执行adb明林 安卓手机端运行的adb工具_python_16

15.adb shell am start -W -n app包名/app活动名

启动app

16.aapt dump badging apk文件路径 | grep(findstr) launchable-activity

对于未安装的app,使用该命令获取app的包名和活动名