设备管理基础

1. adb devices

作用:列出已连接的设备及其状态(device / unauthorized / offline

注意:若显示 unauthorized,手机未授权;若 offline,设备未响应或驱动/线材问题。

2. adb kill-server / adb start-server

作用:停止 / 启动 adb 服务(常用于重启服务解决连接问题)

注意:在某些情况下需以 sudo 启动(不推荐),优先检查 udev/权限。

安装 / 卸载 / 列包

1. adb install <apk>

作用:在设备上安装 apk(默认新安装)

示例:

常用参数:

(1)-r:覆盖安装并保留数据(如更新)

(2)-d:允许降级安装(版本号更低)

(3)-g:授予所有运行时权限(安装时自动授予)

注意:若安装失败可查看 adb install -r -d path.apk 的输出或用 adb logcat 查错误。

2. adb uninstall <package>

作用:卸载指定包(只移除应用,不移除数据时可用 -k 保留数据)

示例:

adb uninstall com.example.app
adb uninstall -k com.example.app   # 保留数据和缓存(少用)

3. adb shell pm list packages

作用:列出设备上已安装包名。

示例:

adb shell pm list packages | grep example

在不同环境下的等价写法
(1)Linux / macOS / WSL / Git Bash(直接可用)

adb shell pm list packages | grep example

(2)Windows CMD(使用 findstr)

adb shell pm list packages | findstr example

(3)PowerShell(推荐用 Select-String)

adb shell pm list packages | Select-String example

4. adb shell pm path <package>

作用:显示 APK 在设备中的路径(便于 pull)

示例:

adb shell pm path com.example.app

进入 Shell / 执行命令

1. adb shell

作用:打开设备的交互式 shell(类似 ssh)

示例:

adb shell
# 进入后可以执行: ls /sdcard/Download

一次性执行命令:

adb shell ls -la /sdcard/
adb shell getprop ro.build.version.release

注意:某些命令在非 root 设备会受限;adb shell 是以 shell 用户执行。

2. adb shell su -c "<cmd>"(需要 root)

作用:以 root 权限在设备上执行命令(设备需已 root)。

示例:

adb shell su -c "cat /data/system/packages.xml"

启动 / 停止 应用(am 命令)

1. adb shell am start -n <pkg>/<Activity>

作用:启动指定 Activity(常用于启动指定页面进行测试)。

示例:

adb shell am start -n com.example.app/.MainActivity

额外选项:

-a 指定 action,-d 指定 data/URI,-e 传递 extra。

2. adb shell am force-stop <package>

作用:强制停止应用。

示例:

adb shell am force-stop com.example.app

3. adb shell am broadcast -a <ACTION>

作用:发送广播(测试广播接收器)。

示例:

adb shell am broadcast -a com.example.app.TEST_ACTION

应用数据管理(pm)

1. adb shell pm clear <package>

作用:清除应用数据(等同“清除数据”)。

示例:

adb shell pm clear com.example.app

2. adb shell pm grant / revoke(运行时权限)

作用:给或收回指定应用的运行时权限(适用于 API 23+)。

示例:

adb shell pm grant com.example.app android.permission.CAMERA
adb shell pm revoke com.example.app android.permission.ACCESS_FINE_LOCATION

注意:应用必须声明权限,且某些权限需要系统签名。

文件传输(push / pull)

1. adb push <local> <remote>

作用:把文件从电脑复制到设备。

示例:

adb push ./local.apk /sdcard/local.apk

2. adb pull <remote> <local>

作用:把文件从设备复制回电脑。

示例:

adb pull /sdcard/screen.png ~/work/screen.png

截屏 / 录屏

1. adb exec-out screencap -p > screen.png

作用:截屏并直接保存到电脑(推荐,避免写入设备文件系统)。

示例(Linux/macOS):

adb exec-out screencap -p > ~/work/screen.png

Windows PowerShell 示例(需要注意重定向行为):

.\adb.exe exec-out screencap -p > C:\work\screen.png

2. adb shell screenrecord /sdcard/demo.mp4

作用:在设备上录屏(停止时保存),然后 pull 到电脑。

示例:

adb shell screenrecord /sdcard/demo.mp4
# 结束录制时按 Ctrl+C(或在另一个 shell 上杀进程),然后:
adb pull /sdcard/demo.mp4 ~/work/demo.mp4

注意:录制时长/分辨率可通过参数控制(参见 screenrecord --help)。

日志(logcat)

1. adb logcat

作用:打印系统与应用日志(实时)。

示例:

adb logcat
adb logcat -v time               # 带时间戳
adb logcat ActivityManager:D MyApp:V *:S   # 只看 ActivityManager 和 MyApp,其他静默

导出当前缓冲区:

adb logcat -d > all.log

实用技巧(按包名过滤):

# 先找到 PID,再过滤该 PID(更准确)
adb shell pidof com.example.app   # 得到 PID
adb logcat | grep $(adb shell pidof com.example.app)

注意:在 Windows 下用 PowerShell 时 grep 改用 Select-String 或安装 GNU grep。

网络 / 端口转发 / 反向

1. adb forward tcp:<host_port> tcp:<device_port>

作用:把主机(电脑)端口转发到设备端口(电脑可访问设备服务)。

示例:

adb forward tcp:8100 tcp:8100

2. adb reverse tcp:<device_port> tcp:<host_port>

作用:把设备端口反向映射到主机端口(设备可访问主机服务,Android 7.0+ 支持)。

示例:

adb reverse tcp:3000 tcp:3000

3. adb tcpip <port> / adb connect(无线 adb)

作用:切换设备到 tcpip 模式并通过 IP 连接(传统方法)。

示例:

adb tcpip 5555
adb connect 192.168.1.100:5555

推荐现代方式:Wireless debugging pairing(Android 11+),用 adb pair ip:port 按提示输入配对码(设备显示)。具体命令:

adb pair 192.168.1.100:37123
adb connect 192.168.1.100:5555

权限 / key 管理(adbkey)

1. 删除本机 adb keys(重新触发授权)

作用:当设备一直显示 unauthorized 或授权出错时,删除本机 key 并重新连接会让手机弹出授权窗口重新确认。

Linux:

adb kill-server
rm -f ~/.android/adbkey*
adb start-server
adb devices

Windows(PowerShell):

.\adb.exe kill-server
del $env:USERPROFILE\.android\adbkey*
.\adb.exe start-server
.\adb.exe devices

调试 / 抓取系统信息 / Bugreport

1. adb bugreport [out.zip]

作用:导出完整系统调试包(崩溃、ANR 分析时非常有用)。

示例:

adb bugreport bugreport.zip

注意:不同 Android 版本输出格式不同(zip 或 txt),文件通常很大。

2. adb shell dumpsys <service>

作用:获取系统服务的详细状态(如 activity、battery、window 等)。

示例:

adb shell dumpsys activity activities
adb shell dumpsys battery

设备重启 / 进入 bootloader / recovery

1. adb reboot

作用:重启设备。

示例:

adb reboot
adb reboot bootloader    # 进入 bootloader/fastboot 模式
adb reboot recovery      # 进入 recovery

fastboot(bootloader 下)

1. fastboot devices

作用:列出处于 fastboot 模式的设备。

示例:

fastboot devices

2. fastboot oem unlock / fastboot flashing unlock

作用:解锁 bootloader(厂商命令差异大)。

示例(警告:会清除设备数据):

fastboot flashing unlock

注意:不同厂商需要不同步骤(某些需先允许 OEM unlocking),并且多数设备会清除所有数据。

3. fastboot flash <partition> <file>

作用:刷写分区(慎用)。

示例:

fastboot flash boot boot.img
fastboot flash recovery recovery.img

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐