4. ADB 高级命令:端口转发、无线调试与数据备份

在车载系统调试中,当设备物理连接受限或需要跨网络访问时,ADB 的高级命令便成为核心工具。本章将深入讲解 adb forward/reverse 端口转发、adb tcpip 无线调试以及 adb backup/restore 数据备份,帮助你在复杂车载环境中建立稳定、灵活的调试通道。

4.1 adb forward / reverse:端口转发与反向转发

端口转发允许你将主机(PC)的端口映射到 Android 设备(车载系统)的端口,反之亦然。这在车载系统无法直接访问网络,或需要从 PC 端抓取设备内部服务数据时尤为关键。

4.1.1 adb forward:主机端口 → 设备端口

将 PC 端的某个 TCP 端口流量转发到 Android 设备上的指定端口。常用于访问设备内部的 Web 服务、调试代理或自定义协议。

典型场景: 车载信息娱乐系统运行了一个 HTTP 诊断接口(端口 8080),但设备未连接 Wi-Fi。通过 adb forward,你可以在 PC 浏览器中通过 localhost:8080 直接访问该接口。
# 语法:adb forward tcp:<主机端口> tcp:<设备端口>
adb forward tcp:8080 tcp:8080

# 列出所有已建立的转发规则
adb forward --list

# 移除指定转发规则
adb forward --remove tcp:8080

# 移除所有转发规则
adb forward --remove-all

4.1.2 adb reverse:设备端口 → 主机端口

反向转发则允许 Android 设备主动访问 PC 端提供的服务。这在车载系统需要从 PC 端拉取文件、接收推送数据或连接 PC 上的调试代理时非常有用。

# 语法:adb reverse tcp:<设备端口> tcp:<主机端口>
adb reverse tcp:9090 tcp:9090

# 列出所有反向转发规则
adb reverse --list

# 移除指定反向转发规则
adb reverse --remove tcp:9090

# 移除所有反向转发规则
adb reverse --remove-all
注意: adb reverse 要求 Android 设备运行 Android 5.0(API 21)及以上版本,且设备必须支持 USB 反向绑定(大多数车载系统均支持)。

4.1.3 端口转发对比表

特性 adb forward adb reverse
方向 PC → 设备 设备 → PC
适用场景 PC 访问设备内部服务 设备访问 PC 端服务
Android 版本要求 无特殊限制 Android 5.0+
典型用途 抓取设备 Web 界面、调试代理 设备拉取 PC 文件、接收推送
连接依赖 USB 或 TCP/IP 连接 仅 USB 连接

4.1.4 端口转发工作流程 SVG

ADB 端口转发与反向转发工作流程 PC / 主机 端口 8080 Android 设备 端口 8080 adb forward PC → 设备 adb reverse 设备 → PC 关键说明 • forward:PC 访问 localhost:8080 即访问设备 8080 端口 • reverse:设备访问 localhost:9090 即访问 PC 9090 端口

4.2 adb tcpip:无线调试

当 USB 线缆不便连接或需要远程调试车载系统时,adb tcpip 允许你通过 Wi-Fi 网络进行无线 ADB 连接。这为车载系统在台架测试、实车路试等场景提供了极大的灵活性。

4.2.1 无线调试步骤

  1. USB 连接设备:确保设备通过 USB 连接到 PC,并确认 ADB 已识别。
  2. 切换到 TCP/IP 模式:执行 adb tcpip 5555,设备将在端口 5555 上监听无线连接。
  3. 获取设备 IP 地址:通过 adb shell ip addr show wlan0 或设备设置中查看 IP。
  4. 无线连接:执行 adb connect <设备IP>:5555。
  5. 断开 USB 线缆:确认连接成功后,即可拔掉 USB 线进行无线调试。
# 步骤 1:确认设备已连接
adb devices

# 步骤 2:切换到 TCP/IP 模式(端口 5555)
adb tcpip 5555

# 步骤 3:获取设备 IP(示例)
adb shell ip addr show wlan0 | grep 'inet '

# 步骤 4:无线连接(假设 IP 为 192.168.1.100)
adb connect 192.168.1.100:5555

# 步骤 5:验证连接
adb devices
# 输出应显示:192.168.1.100:5555   device

4.2.2 无线调试注意事项

安全警告: 无线调试会暴露 ADB 端口(默认 5555)到局域网中。在公共网络或非信任环境中,请务必在调试完成后执行 adb usb 切回 USB 模式,或使用 adb disconnect 断开连接,防止未授权访问。
操作 命令 说明
切换到 TCP/IP adb tcpip <端口> 默认端口 5555,可自定义
无线连接 adb connect <IP>:<端口> IP 与端口需匹配
切回 USB 模式 adb usb 断开无线,恢复 USB 调试
断开指定设备 adb disconnect <IP>:<端口> 仅断开无线连接
查看连接状态 adb devices -l 显示所有连接设备及传输方式

4.2.3 无线调试连接流程 SVG

adb tcpip 无线调试连接流程 USB 连接 adb devices 确认 adb tcpip 5555 切换到无线模式 获取设备 IP ip addr show wlan0 adb connect IP:5555 无线调试注意事项 • 确保 PC 与设备在同一局域网内 • 防火墙需允许 ADB 端口(5555)通信 • 调试完成后执行 adb usb 切回 USB 模式,确保安全

4.3 adb backup / restore:数据备份与恢复

在车载系统开发或测试中,经常需要备份应用数据、系统设置或用户配置,以便在刷机、重置或迁移时快速恢复。adb backup 和 adb restore 提供了完整的应用数据备份与恢复能力。

4.3.1 adb backup:创建备份

备份命令可以将指定应用或整个系统的数据打包成一个 .ab 文件。备份内容通常包括应用私有数据、SharedPreferences、数据库文件等。

# 备份单个应用(以 com.android.settings 为例)
adb backup -f settings_backup.ab com.android.settings

# 备份所有应用数据(非系统应用)
adb backup -f all_apps_backup.ab -apk -shared -all -nosystem

# 备份整个系统(包含系统应用,需要 root 权限)
adb backup -f full_backup.ab -apk -shared -all -system

# 参数说明:
# -f <文件名>  指定备份文件路径
# -apk          同时备份 APK 文件
# -shared       备份共享存储(SD 卡)数据
# -all          备份所有应用
# -nosystem     排除系统应用
# -system       包含系统应用

4.3.2 adb restore:恢复备份

恢复命令将之前创建的 .ab 文件中的数据写回设备。恢复时会覆盖目标应用的现有数据,请谨慎操作。

# 恢复单个应用备份
adb restore settings_backup.ab

# 恢复全量备份
adb restore full_backup.ab
重要提示:
  • 备份文件是加密的,默认使用设备锁屏密码/PIN 进行加密。恢复时需要输入相同的密码。
  • adb backup/restore 在 Android 6.0(API 23)及以上版本中已被标记为“已弃用”,但大多数车载系统仍支持此功能。
  • 对于 Android 9.0 及以上版本,Google 推荐使用 adb backup 的替代方案——Auto Backup for Apps 或 Device-to-Device 迁移。

4.3.3 备份与恢复参数对比

参数 备份 (backup) 恢复 (restore)
基本语法 adb backup -f <文件> [选项] adb restore <文件>
文件格式 .ab(Android Backup) .ab(Android Backup)
加密方式 设备锁屏密码 设备锁屏密码
覆盖行为 创建新备份文件 覆盖设备上已有数据
root 需求 备份系统应用需要 root 恢复系统应用需要 root
典型用途 刷机前备份用户数据 刷机后恢复用户数据

4.3.4 备份与恢复流程 SVG

adb backup / restore 数据备份与恢复流程 备份流程 adb backup -f backup.ab -apk -all 设备 → PC(生成 .ab 文件) 恢复流程 adb restore backup.ab PC → 设备(覆盖数据) 关键说明 • 备份文件默认加密,恢复时需输入设备锁屏密码 • 恢复操作会覆盖目标应用现有数据,请提前确认

4.4 本章小结

  • adb forward/reverse:实现 PC 与设备之间的双向端口映射,突破网络限制,灵活访问内部服务。
  • adb tcpip:通过 Wi-Fi 实现无线调试,摆脱 USB 线缆束缚,适用于台架测试和远程调试。
  • adb backup/restore:提供应用级和系统级的数据备份与恢复能力,保障车载系统开发中的数据安全与迁移效率。
实战建议: 在车载系统调试中,建议将端口转发与无线调试结合使用。例如:先通过 USB 建立 adb forward 转发诊断端口,再切换到无线模式,实现远程诊断与数据抓取。