ADB 是什么?

ADB(Android Debug Bridge)是 Android SDK 中的一个工具,使用 ADB 可以直接操作管理 Android 模拟器或者真实的 Andriod 设备。

ADB 可以做什么?/我们为什么需要使用 ADB?

ADB 主要功能有:

  1. 在 Android 设备上运行 Shell(命令行)
  2. 管理模拟器或设备的端口映射
  3. 在计算机和设备之间上传/下载文件
  4. 将电脑上的本地 APK 软件安装至 Android 模拟器或设备上

ADB 的下载和安装

Google 官方已提供了 adb/fastboot 跨平台工具包,下载地址见这里

以 Windows PC 平台为例,下载后解压,通过 cmd 进入解压后的路径下,然后使用数据线将手机连接电脑,输入 adb.exe devices 出现实例状态即说明连接成功(注意在非 Windows PC 平台上,我们无需加 exe 后缀,即 adb devices)。

1 $ ./adb.exe devices
2 * daemon not running. starting it now on port 5037 *
3 * daemon started successfully *
4 List of devices attached
5 e06229e8        device

通过 ADB 安装应用

1 adb install <APK 文件路径>

通过 ADB 升级应用

1 adb install -r <APK 文件路径>

参数 -r 表示允许覆盖安装;-d 表示允许降级覆盖安装。

通过 ADB 卸载应用

1 adb uninstall <应用包名>
2 adb uninstall -k <应用包名> # 如果加 -k 参数,为卸载应用但是保留配置和缓存文件

其中 <应用包名> 可以通过 adb shell pm list packages 命令查看:

  • adb shell pm list packages -s 可以查看系统应用
  • adb shell pm list packages -3 可以查看用户应用
  • adb shell pm list packages xxx 可以查看包含 xxx 字符串的应用

通过 ADB 冻结应用

冻结应用使用的命令是:

1 adb shell pm hide <应用包名>

解冻应用的命令为:

1 adb shell pm unhide <应用包名>

如何将文件从电脑发送至设备?

1 adb push <本地路径> <设备路径>

需要注意的是:

  • 你可能会遇到 Read-only file system 的错误提示信息,解决方法是在执行 push 命令之前使用 adb remount 命令获取上传文件权限。
  • 如果需要向一个二级目录里放文件的时候,请使用 / 而不是使用 \
  • 设备上的文件路径普通权限可能无法直接发送写入,如果你的设备已经 root 过,可以先 adb push </path/on/pc> </sdcard/filename>,然后 adb shellsu 在 adb shell 里获取 root 权限后,再 cp </sdcard/filename> </path/on/device>
1 $ ./adb.exe shell
2 capricorn:/ $ su
3 su
4 capricorn:/ #

同理,如果需要将设备里的文件拷贝到电脑,使用 adb pull <设备里的文件路径> <本地路径>

扩展阅读