adb shell
是 Android Debug Bridge (ADB) 的核心组件,允许开发者通过 Linux 终端与连接的 Android 设备交互,它在调试应用、管理文件、查看系统日志等场景中至关重要,本文将详细讲解在 Linux 系统上使用 adb shell
的完整流程,涵盖安装、连接、常用命令及故障排除。
在 Linux 上使用 adb shell
前,需先安装 ADB 工具包:
通过包管理器安装
- Debian/Ubuntu:
sudo apt update && sudo apt install android-tools-adb android-tools-fastboot
- Arch/Manjaro:
sudo pacman -S android-tools
- Fedora/RHEL:
sudo dnf install android-tools
手动安装(通用方法)
从 Google 官方平台工具页面 下载 ZIP 包:
wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip unzip platform-tools-latest-linux.zip sudo mv platform-tools /opt/ echo 'export PATH=$PATH:/opt/platform-tools' >> ~/.bashrc # 添加环境变量 source ~/.bashrc # 立即生效
连接 Android 设备
USB 连接
- 步骤:
- 设备开启 开发者模式:
- 进入
设置 > 关于手机 > 版本号
,连续点击 7 次。
- 进入
- 启用 USB 调试:
- 返回
设置 > 系统 > 开发者选项
,打开 USB 调试。
- 返回
- 通过 USB 连接设备到 Linux 主机。
- 终端执行:
adb devices # 查看设备是否识别
- 设备开启 开发者模式:
- 若设备未列出:
- 创建 USB 规则文件:
sudo nano /etc/udev/rules.d/51-android.rules
(替换
idVendor
,通过lsusb
查询设备 ID):SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
- 重载规则:
sudo udevadm control --reload-rules sudo udevadm trigger
- 创建 USB 规则文件:
网络连接(Wi-Fi)
adb tcpip 5555 # 设备通过 USB 开启 TCP 端口 adb connect <设备IP>:5555 # 断开 USB 后通过 IP 连接
常用 adb shell
命令详解
基础交互
- 进入设备终端:
adb shell
退出时输入
exit
或按Ctrl+D
。 - 单次执行命令(不进入 shell):
adb shell <命令> # adb shell ls /sdcard
文件管理
命令 | 作用 |
---|---|
adb push <本地路径> <设备路径> |
复制文件到设备(如 adb push ~/file.txt /sdcard/ ) |
adb pull <设备路径> <本地路径> |
从设备复制文件到本地(如 adb pull /sdcard/log.txt ~/ ) |
adb shell ls /path |
列出设备目录内容 |
adb shell rm /path/file |
删除设备文件 |
应用与系统管理
- 查看已安装应用:
adb shell pm list packages
- 卸载应用:
adb uninstall <包名> # 保留数据加 `-k`
- 启动 Activity:
adb shell am start -n <包名>/<Activity名>
- 查看系统日志:
adb logcat # 实时日志 adb logcat -d > log.txt # 导出日志
设备信息
adb shell getprop ro.product.model # 设备型号 adb shell settings list system # 系统设置 adb shell dumpsys battery # 电池状态
高级用法
后台执行命令
使用 nohup
在设备后台运行命令:
adb shell "nohup <命令> &"
屏幕截图与录屏
- 截图:
adb shell screencap /sdcard/screen.png adb pull /sdcard/screen.png
- 录屏(需 Android 4.4+):
adb shell screenrecord /sdcard/video.mp4 # 按 Ctrl+C 停止录制后拉取文件
Root 权限操作
若设备已 Root,在 adb shell
后输入 su
获取 root 权限:
adb shell su # 执行需 root 的命令(如修改 /system 文件)
故障排除
设备未识别
- 检查
adb devices
是否列出设备。 - 重启 ADB 服务:
adb kill-server && adb start-server
- 更换 USB 线或端口。
权限不足错误
- 若提示
permission denied
:- 尝试
adb root
重启守护进程(需设备支持)。 - 检查设备是否授权 USB 调试(弹出窗口点“允许”)。
- 尝试
网络连接失败
- 确保设备与电脑在同一局域网。
- 重新执行:
adb disconnect && adb connect <IP>:5555
安全提示
- 谨慎使用
su
命令:Root 操作可能导致系统不稳定或安全风险。 - 仅信任来源连接:避免通过公共网络使用
adb connect
。 - 及时关闭调试:完成操作后关闭设备 USB 调试功能。
掌握 adb shell
能极大提升 Android 开发和设备管理效率,本文涵盖从安装到高级操作的完整流程,建议结合实践逐步探索更多命令(如 adb shell top
查看进程资源占用),遇到问题时,可查阅 Android 官方文档 或社区资源。
引用说明:
- Android 开发者文档:ADB 命令指南
- Linux Udev 规则配置:ArchWiki
- 社区经验:Stack Overflow, XDA Developers
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5792.html