4、ADB基础命令(上):adb devices、adb shell、adb install、adb uninstall、adb reboot

好,咱们正式开始啃ADB命令这块硬骨头。

说实话,ADB命令看着多,但真正天天用的也就那么十几个。今天这五个,是基础中的基础——你连设备都连不上,后面那些花活根本玩不转。

我刚开始带项目那会儿,有个同事死活装不上APK,折腾了一下午。最后我过去一看,adb devices 列表里压根没他的设备。嗯,USB调试没开。这种坑,踩过一次就记住了。

本章核心脉络:设备连接 → 进入系统 → 安装/卸载应用 → 重启设备。这五个命令串起来,就是一次完整的ADB操作闭环。
ADB基础命令(上)知识结构 ADB 基础命令 adb devices adb shell adb install adb uninstall adb reboot 检测设备连接状态 进入设备Linux Shell 安装APK到设备 卸载指定应用 重启设备(支持多种模式)

4.1 adb devices —— 先看看设备在不在

这命令我一天能敲几十遍。说白了,它就是ADB的"握手"动作。

adb devices

执行后,你会看到类似这样的输出:

List of devices attached
0123456789ABCDEF    device

状态栏有几种可能:

状态 含义 怎么办
device 正常连接,可以操作 直接干活
unauthorized 设备未授权 看设备屏幕,点"允许USB调试"
offline 设备离线或ADB服务异常 重新插拔USB,或 adb kill-server 重启服务
no device 没检测到设备 检查驱动、USB线、调试开关
我的小习惯:每次开始调试前,先敲一遍 adb devices 确认状态。尤其是换了USB口或者线之后,这一步能省掉后面90%的"连不上"问题。

4.2 adb shell —— 钻进设备肚子里

adb shell 就是给你一把钥匙,直接进到Android系统的Linux内核里。你想想看,能在手机上敲Linux命令,多爽。

adb shell

执行后,提示符会变成 shell@device:/ $,这时候你就可以:

  • 查看文件:ls -l /data/data/
  • 查看进程:ps -A | grep com.example
  • 查看日志:logcat -c(清空缓存)
  • 查看系统属性:getprop ro.build.version.sdk

也可以不进入交互模式,直接执行单条命令:

adb shell dumpsys battery
adb shell pm list packages

我个人更喜欢这种用法——执行完就退出来,干净利落。

注意:adb shell 进去之后,你拥有的是 shell 用户权限,不是 root。有些系统目录你读不了,有些操作你做不了。别慌,这是正常的。需要root权限的话,得先给设备root。

4.3 adb install —— 装APK,就这么简单

装应用,最直接的方式:

adb install app-release.apk

成功的话,你会看到 Success。失败的话……嗯,常见错误我列一下:

错误信息 原因 解决
INSTALL_FAILED_ALREADY_EXISTS 应用已存在 加 -r 参数覆盖安装
INSTALL_FAILED_VERSION_DOWNGRADE 版本号比已安装的低 加 -d 允许降级
INSTALL_FAILED_INSUFFICIENT_STORAGE 存储空间不足 清理设备空间
INSTALL_FAILED_USER_RESTRICTED 用户限制安装 检查"允许安装未知来源应用"

常用参数组合:

adb install -r -d app-release.apk   # 覆盖安装 + 允许降级

我曾经遇到过一个问题:测试包版本号写错了,比线上版本低,直接装不上。加个 -d 搞定。这种小坑,遇到了就知道参数的重要性。

4.4 adb uninstall —— 卸得干干净净

卸载命令更简单:

adb uninstall com.example.myapp

注意,这里用的是包名,不是应用名称。怎么查包名?

adb shell pm list packages | grep 关键词

比如我想卸载微信:

adb shell pm list packages | grep weixin
# 输出:package:com.tencent.mm
adb uninstall com.tencent.mm
避坑指南:加 -k 参数可以保留应用数据目录不删除。但说实话,我很少用这个——既然要卸载,就卸干净,留着数据干嘛?

4.5 adb reboot —— 重启大法好

重启设备,一句话的事:

adb reboot

但ADB的重启不止这么简单。它支持三种模式:

命令 模式 用途
adb reboot 正常重启 系统重启,日常使用
adb reboot bootloader 引导加载模式 刷机、解锁Bootloader
adb reboot recovery 恢复模式 双清、刷入OTA包

我印象最深的一次:某款设备系统卡死了,屏幕黑着,但ADB还能连上。远程敲了个 adb reboot,设备活了。你想想看,这比扣电池优雅多了。

重要提醒:adb reboot bootloader 和 adb reboot recovery 会中断ADB连接。重启后设备进入特殊模式,ADB服务会断开。想继续用ADB,得等设备完全进入系统才行。

4.6 实战组合拳:一条命令搞定安装+启动

最后分享一个我常用的组合:

adb install -r app.apk && adb shell am start -n com.example/.MainActivity

这条命令干了三件事:

  1. 安装(或覆盖安装)APK
  2. 安装成功后,自动启动应用的主Activity
  3. 省掉你手动点图标的步骤

做自动化测试的时候,这个组合拳能省不少时间。嗯,今天就先到这,这五个命令够你练一阵子了。