车载测试 ADB 命令学习资料面向车载测试工程师的实操指南配套资料:《汽车电气电子架构学习资料.md》《汽车 CAN 总线网络学习资料.md》《CANoe 工具及实战学习资料.md》核心定位:在智能座舱(Android 车机)测试中用好 ADB目录ADB 是什么环境准备连接车机基础命令应用管理(APK)文件操作日志抓取Shell 命令Activity 与服务管理输入与屏幕操作系统属性与设置性能监控网络与端口车载专项:CAN 报文与诊断车载专项:车机权限与多屏脚本化测试技巧常见问题与避坑命令速查表1. ADB 是什么1.1 一句话定义ADB = Android Debug Bridge,中文叫"Android 调试桥"。解析:ADB 是 PC 和 Android 设备之间通信的"桥梁"——你用电脑通过 ADB 命令操作手机/车机/平板。1.2 为什么车载测试要用 ADB现在智能座舱(车机)基本都是 Android 系统(比如基于 Android Automotive),ADB 是测试这类车机必备工具:测试场景ADB 能干啥应用测试安装/卸载/启动 APK日志分析抓取 logcat 日志定位 BUG性能测试监控 CPU、内存、FPS自动化测试模拟点击、输入、按键系统调试改属性、重启、刷机文件管理推/拉文件网络调试抓包、端口转发车载特殊读 CAN 报文、车机权限1.3 ADB 架构(三层)PC 端 车机端 ┌──────────┐ ┌──────────────┐ │ ADB │ ←USB/TCP→ │ adbd │ │ Client │ │ (守护进程) │ └────┬─────┘ └──────┬───────┘ │ │ └──── ADB Server ─────────┘ (PC 后台进程)ADB Client:你敲的 adb 命令ADB Server:PC 后台进程,管理连接adbd:车机上的守护进程,执行命令理解这点很重要:如果 adbd 没运行,ADB 连不上。2. 环境准备2.1 PC 端安装Windows下载Platform Tools:官网:https://developer.android.com/tools/releases/platform-tools国内镜像:搜 “android platform-tools 下载”解压到目录,例如D:\platform-tools配置环境变量:我的电脑 → 属性 → 高级系统设置 → 环境变量 → Path → 新建 → D:\platform-tools验证:adb version输出版本号说明安装成功。Linux/Mac# Ubuntusudoaptinstalladb# Macbrewinstallandroid-platform-tools2.2 车机端准备车机需要开启开发者模式 + USB 调试:车机设置 → 关于本机 → 连续点击"版本号" 7 次 → 开启开发者模式设置 → 开发者选项 → 打开"USB 调试"用 USB 线连接 PC 和车机不同车机菜单路径不同,有些车机需要工程模式才能开调试。2.3 USB 驱动(Windows 常见坑)Windows 不识别设备时,需要装 USB 驱动通用驱动:Google USB Driver车机厂商专用驱动:找供应商要设备管理器里看到"Android Device → Android Composite ADB Interface"才算成功。3. 连接车机3.1 USB 连接# 查看已连接设备adb devices输出:List of devices attached 192.168.1.100:5555 device ABCD1234 device状态含义device正常连接offline设备未响应(adbd 异常)unauthorized车机未授权调试no device没连上3.2 USB 授权第一次连接时车机会弹窗:允许 USB 调试吗? [✓] 一律允许 [允许] [取消]点"允许",否则会显示unauthorized。3.3 网络连接(TCP 模式)车机有 IP 时可以无线连接:# Step 1: 先用 USB 连接adb devices# Step 2: 让车机的 adbd 监听网络端口adb tcpip5555# 输出:restarting in TCP mode port: 5555# Step 3: 拔掉 USB,通过网络连接adb connect192.168.1.100:5555# 输出:connected to 192.168.1.100:5555# Step 4: 验证adb devices车载测试常走网线/WiFi 连接,比 USB 方便。3.4 断开连接adb disconnect192.168.1.100:5555# 或全部断开adb disconnect3.5 多设备指定多个设备时用-s指定:adb-s192.168.1.100:5555 shell adb-sABCD1234installapp.apk4. 基础命令4.1 查看版本adb version4.2 启动/停止服务adb start-server# 启动 ADB Serveradb kill-server# 杀掉 ADB Server(出问题先试这个)adb restart-server# 重启4.3 等待设备就绪adb wait-for-device# 阻塞直到设备连上,常用于脚本4.4 重启车机adbreboot# 正常重启adbrebootrecovery# 重启到 recovery 模式adbrebootbootloader# 重启到 bootloader(刷机用)adbrebootsideload# 重启到 sideload 模式4.5 进入/退出 shell# 一次性命令adb shellls/data# 进入交互式 shelladb shell# 进入后就是车机的 Linux shellls/sdcardexit# 退出4.6 root 权限# 检查是否 rootadb shellwhoami# 输出 root → 已 root# 输出 shell → 普通 user# 尝试提权adb root# 输出 "adbd is already running as root" → 成功# 输出 "adbd cannot run as root in production builds" → 失败# 切换到 root shelladb shellsu车机测试一般需要 root 权限才能访问系统文件、CAN 等。5. 应用管理(APK)5.1 安装 APK# 基础安装adbinstallapp.apk# 覆盖安装(保留数据)adbinstall-rapp.apk# 允许降级安装adbinstall-dapp.apk# 安装到 SD 卡adbinstall-sapp.apk# 授予所有权限(不弹窗)adbinstall-gapp.apk# 组合使用adbinstall-r-g-dapp.apk参数含义-r覆盖安装,保留数据-d允许降级-g自动授予所有权限-s装到 SD 卡-t允许测试包-k卸载时保留数据5.2 卸载 APK# 普通卸载adb uninstall com.example.app# 卸载但保留数据adb uninstall-kcom.example.app包名不是 APK 文件名,是com.xxx.xxx格式。5.3 查看已安装应用# 所有应用adb shell pm list packages# 第三方应用(非系统)adb shell pm list packages-3# 系统应用adb shell pm list packages-s# 模糊查找adb shell pm list packages|grep"audio"5.4 查看应用路径adb shell pm path com.example.app# 输出:package:/data/app/com.example.app-1/base.apk5.5 清除应用数据adb shell pmclearcom.example.app等于"恢复出厂设置"单个应用,测试时常用。5.6 启用/禁用应用# 禁用(变灰,不能打开)adb shell pm disable com.example.app# 启用adb shell pmenablecom.example.app# 隐藏(不显示在桌面)adb shell pm hide com.example.app# 显示adb shell pm unhide com.example.app5.7 强制停止adb shell am force-stop com.example.app测试闪退、重启场景必备。6. 文件操作6.1 推送文件(PC → 车机)adb push C:\test.txt /sdcard/test.txt把 PC 的文件推到车机。6.2 拉取文件(车机 → PC)adb pull /sdcard/test.txt C:\test.txt把车机文件拉到 PC。6.3 推拉整个目录adb push C:\testdir /sdcard/testdir adb pull /sdcard/testdir C:\testdir6.4 车机内部文件操作(shell)adb shell# 常用 Linux 命令ls-l/sdcard# 列目录cp/sdcard/a.txt /tmp# 复制mv