如何在 Android 模拟器上使用 Android Debug Bridge (adb)?
本文将介绍如何使用 Android Debug Bridge (adb) 命令,在几秒钟内完成各类复杂任务。
1. 什么是 Android Debug Bridge (adb)?
Android Debug Bridge 是一款功能强大的调试工具,开发者可以借助它与 Android 模拟器通信,并执行大量命令。
它可以简化开发者处理许多复杂且容易出错的任务,例如:
- 覆盖 / 还原 HTTP 代理
- 开启 / 关闭 Wi-Fi 网络
- 安装并信任证书
- 关闭所有正在运行的应用
- 以及更多功能……
开发者可以通过命令行完成许多任务,从而节省时间,专注于应用的 UI/UX。
更多信息请参阅:https://developer.android.com/studio/command-line/adb
2. 安装
如果尚未安装 adb 命令,可以按照以下步骤手动安装:
1/ 安装 Homebrew
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
2/ 安装 adb 命令
$ brew cask install android-platform-tools
更多信息请参阅:https://stackoverflow.com/questions/31374085/installing-adb-on-macos
3. 常见任务
以下任务都需要已 root 的 Android 模拟器。
Root Android 模拟器
请确保 Android 模拟器为 Google APIs 版本,而非 Play Store 版本。

- 在 Android Studio 中打开 Android 模拟器
- 运行
$ adb root
- 等待几分钟,让设备重新启动。
覆盖 HTTP 代理
- 将 Android 模拟器的 HTTP 代理覆盖为 IP 127.0.0.1,端口 9090
adb shell settings put global http_proxy 127.0.0.1:9090
还原 HTTP 代理
- 由于 HTTP 代理配置是通过命令行覆盖的,不再需要时务必将其还原,否则 Android 模拟器可能无法访问互联网。
adb shell settings put global http_proxy :0
安装并信任自签名证书
- 在 Android 模拟器上安装并信任自签名证书非常麻烦,尤其是使用 Android 11 及更高版本时,还需要额外的步骤才能将证书添加为系统信任的证书。
可以使用以下命令自动完成:
# 1. Prepare your certificate
$ subjectHash=`openssl x509 -inform PEM -subject_hash_old -in my-certificate.pem | head -n 1`
$ openssl x509 -in my-certificate.pem -inform PEM -outform DER -out $subjectHash.0
# 2. Copy to Android Emulators
$ adb push ./$subjectHash.0 /data/misc/user/0/cacerts-added/$subjectHash.0
$ adb shell "su 0 chmod 644 /data/misc/user/0/cacerts-added/$subjectHash.0"
# 3. Restart your android emulator to take effect!
可以依次进入以下路径,检查证书是否已正确安装并受信任:
- Setting 应用 -> Security -> Encryption & Credentials -> Trusted Certificate -> User 选项卡
开启 Wi-Fi 网络
$ adb shell svc wifi enable
关闭所有运行中的应用
- 准备脚本:closeall.sh
APPS=$(adb shell dumpsys window a | grep "/" | cut -d "{" -f2 | cut -d "/" -f1 | cut -d " " -f2)
for APP in $APPS ; do
echo "Closing: $APP"
adb shell am force-stop $APP
done
- 执行脚本
./closeall.sh
4. 结合 Proxyman 使用 ADB
从 Proxyman 2.10.0 开始,Proxyman 为 Android 模拟器推出了 Automatic Script 功能,只需一键即可完成复杂的操作。
它包括以下功能:
- 将 HTTP 代理覆盖为 Proxyman
- 按需还原 HTTP 代理
- 自动下载、安装并信任 Proxyman CA 证书到 Android 模拟器中。
可以通过 Certificate 菜单 -> Install Certificate on Android -> Emulator 使用该功能。

更多信息请参阅:https://proxyman.com/docs/debug-devices/android-device/automatic-script-for-android-emulator
当前推荐做法
在手动复制证书之前,优先使用 Proxyman 的 Automatic Script。当前版本可以自动设置模拟器代理,并将 Proxyman 证书安装到系统证书存储中。请先确认 adb 能识别到模拟器,并使用受支持的 Google APIs 镜像。完成后选择 Revert All Changes,这样 Proxyman 关闭后,模拟器仍能访问互联网。
Proxyman 是一款高性能的 macOS 应用,可帮助开发者抓取 iOS 设备、iOS 模拟器和 Android 设备上的 HTTPS 流量。
下载地址:https://proxyman.com

