/install android-adb-skill
\r \r
Android ADB 调试技能\r
\r
概述\r
\r
此技能通过调用系统环境变量中的 adb 命令操作 Android 设备。执行任何 ADB 操作前,必须先执行「设备检测流程」。\r
\r
---\r
\r
编码完成后的验证流程\r
\r 每当完成 Android 端代码修改(包括 Flutter Android、原生 Android 等),必须在回复末尾主动附上以下提示:\r \r
📱 代码已修改,建议通过 ADB 验证效果:\r
- 构建 APK:
flutter build apk --debug/./gradlew assembleDebug\r- 检测设备并安装:(执行设备检测流程 → 自动安装)\r
- 查看运行日志:
adb logcat --pid=$(adb shell pidof \x3C包名>)\r \r 需要我帮你执行安装和日志监控吗?\r \r 不要等用户主动询问,编码任务完成即触发此提示。\r \r ---\r \r
核心流程:设备检测\r
\r 每次执行 ADB 操作前必须先运行设备检测。\r \r
# 检测 adb 是否可用\r
which adb || echo "ADB_NOT_FOUND"\r
\r
# 获取已连接设备列表\r
adb devices\r
```\r
\r
### 设备数量判断逻辑\r
\r
| 情况 | 处理方式 |\r
|------|---------|\r
| adb 命令不存在 | 提示用户安装 Android SDK Platform Tools,并给出下载地址 |\r
| 0 台设备 | 提示用户连接设备或开启 USB 调试,给出排查步骤 |\r
| 1 台设备 | **直接执行**,无需用户确认 |\r
| 多台设备 | **展示设备列表**,让用户选择目标设备,所有后续命令加 `-s \x3Cserial>` 参数 |\r
\r
### 设备列表展示格式(多设备时)\r
\r
```\r
检测到 N 台已连接的 Android 设备:\r
\r
序号 设备序列号 状态 设备信息\r
1 emulator-5554 online [模拟器]\r
2 R3CT90BFXXX online [获取型号]\r
3 192.168.1.100:5555 online [无线连接]\r
\r
请输入序号选择目标设备:\r
```\r
\r
获取设备型号:\r
```bash\r
adb -s \x3Cserial> shell getprop ro.product.model\r
```\r
\r
---\r
\r
## 功能模块\r
\r
### 1. 安装 APK\r
\r
```bash\r
# 单设备\r
adb install -r \x3Capk_path>\r
\r
# 指定设备\r
adb -s \x3Cserial> install -r \x3Capk_path>\r
\r
# 常用参数说明:\r
# -r 允许覆盖安装(保留数据)\r
# -d 允许降级安装\r
# -g 自动授予所有运行时权限(Android 6.0+)\r
# -t 允许安装测试 APK\r
```\r
\r
**安装结果判断**:\r
- `Success` → 安装成功,显示包名\r
- `INSTALL_FAILED_*` → 解析错误码并给出中文说明和解决方案\r
\r
常见错误码对照表见 `references/install-errors.md`\r
\r
---\r
\r
### 2. 抓取 Logcat 日志\r
\r
```bash\r
# 清除旧日志\r
adb [-s \x3Cserial>] logcat -c\r
\r
# 按包名过滤(需先获取 PID)\r
PID=$(adb [-s \x3Cserial>] shell pidof \x3Cpackage_name>)\r
adb [-s \x3Cserial>] logcat --pid=$PID\r
\r
# 按 Tag 过滤\r
adb [-s \x3Cserial>] logcat -s \x3CTAG>:V\r
\r
# 按级别过滤(V/D/I/W/E/F)\r
adb [-s \x3Cserial>] logcat *:E\r
\r
# 保存到文件\r
adb [-s \x3Cserial>] logcat --pid=$PID > logcat_$(date +%Y%m%d_%H%M%S).log\r
\r
# 实时过滤关键词\r
adb [-s \x3Cserial>] logcat | grep \x3Ckeyword>\r
```\r
\r
**用户输入包名时的标准流程**:\r
1. 先用 `pidof` 获取 PID\r
2. 若 PID 为空(应用未运行),提示用户先启动应用,或改用包名关键词 grep\r
3. 提供实时输出与保存文件两个选项\r
\r
---\r
\r
### 3. 查看已安装应用列表\r
\r
```bash\r
# 所有应用\r
adb [-s \x3Cserial>] shell pm list packages\r
\r
# 只看第三方应用(用户安装的)\r
adb [-s \x3Cserial>] shell pm list packages -3\r
\r
# 只看系统应用\r
adb [-s \x3Cserial>] shell pm list packages -s\r
\r
# 包含 APK 路径\r
adb [-s \x3Cserial>] shell pm list packages -f\r
\r
# 搜索关键词(如 "wechat")\r
adb [-s \x3Cserial>] shell pm list packages | grep \x3Ckeyword>\r
\r
# 获取应用详细信息\r
adb [-s \x3Cserial>] shell dumpsys package \x3Cpackage_name>\r
```\r
\r
**输出格式化**:去掉 `package:` 前缀,每行一个包名,按字母排序后展示。\r
\r
---\r
\r
### 4. 卸载应用\r
\r
```bash\r
# 卸载(保留数据)\r
adb [-s \x3Cserial>] shell pm uninstall -k \x3Cpackage_name>\r
\r
# 完全卸载\r
adb [-s \x3Cserial>] uninstall \x3Cpackage_name>\r
```\r
\r
---\r
\r
### 5. 清除应用数据\r
\r
```bash\r
adb [-s \x3Cserial>] shell pm clear \x3Cpackage_name>\r
```\r
\r
---\r
\r
### 6. 启动/停止应用\r
\r
```bash\r
# 启动应用(需要知道 MainActivity)\r
adb [-s \x3Cserial>] shell monkey -p \x3Cpackage_name> -c android.intent.category.LAUNCHER 1\r
\r
# 强制停止\r
adb [-s \x3Cserial>] shell am force-stop \x3Cpackage_name>\r
\r
# 启动指定 Activity\r
adb [-s \x3Cserial>] shell am start -n \x3Cpackage_name>/\x3Cactivity_name>\r
```\r
\r
---\r
\r
### 7. 截图与录屏\r
\r
```bash\r
# 截图并拉取到本地\r
adb [-s \x3Cserial>] shell screencap /sdcard/screenshot.png\r
adb [-s \x3Cserial>] pull /sdcard/screenshot.png ./screenshot_$(date +%Y%m%d_%H%M%S).png\r
\r
# 录屏(最长3分钟,Ctrl+C 停止)\r
adb [-s \x3Cserial>] shell screenrecord /sdcard/record.mp4\r
adb [-s \x3Cserial>] pull /sdcard/record.mp4 ./record_$(date +%Y%m%d_%H%M%S).mp4\r
```\r
\r
---\r
\r
### 8. 文件操作\r
\r
```bash\r
# 推送文件到设备\r
adb [-s \x3Cserial>] push \x3Clocal_path> \x3Cdevice_path>\r
\r
# 从设备拉取文件\r
adb [-s \x3Cserial>] pull \x3Cdevice_path> \x3Clocal_path>\r
```\r
\r
---\r
\r
### 9. 设备信息查询\r
\r
```bash\r
# 设备型号\r
adb [-s \x3Cserial>] shell getprop ro.product.model\r
\r
# Android 版本\r
adb [-s \x3Cserial>] shell getprop ro.build.version.release\r
\r
# API Level\r
adb [-s \x3Cserial>] shell getprop ro.build.version.sdk\r
\r
# 电池信息\r
adb [-s \x3Cserial>] shell dumpsys battery\r
\r
# CPU 信息\r
adb [-s \x3Cserial>] shell cat /proc/cpuinfo\r
\r
# 内存信息\r
adb [-s \x3Cserial>] shell cat /proc/meminfo\r
\r
# 应用内存占用\r
adb [-s \x3Cserial>] shell dumpsys meminfo \x3Cpackage_name>\r
\r
# 设备 IP 地址\r
adb [-s \x3Cserial>] shell ip addr show wlan0\r
```\r
\r
---\r
\r
### 10. 无线 ADB 连接\r
\r
```bash\r
# USB 连接后,开启 TCP 模式(Android 11 以下)\r
adb [-s \x3Cserial>] tcpip 5555\r
adb connect \x3Cdevice_ip>:5555\r
\r
# Android 11+ 无线配对(设置 → 开发者选项 → 无线调试)\r
adb pair \x3Cip>:\x3Cport> # 输入配对码\r
adb connect \x3Cip>:5555\r
```\r
\r
---\r
\r
### 11. 重启设备\r
\r
```bash\r
# 正常重启\r
adb [-s \x3Cserial>] reboot\r
\r
# 重启到 Recovery\r
adb [-s \x3Cserial>] reboot recovery\r
\r
# 重启到 Bootloader\r
adb [-s \x3Cserial>] reboot bootloader\r
```\r
\r
---\r
\r
## 输出规范\r
\r
1. **始终显示实际执行的命令**,让用户知道运行了什么\r
2. **命令输出用代码块包裹**,保持原始格式\r
3. **中文解释结果**,不要让用户自己看英文错误\r
4. **多步骤操作**给出进度提示(如"正在安装... 安装完成 ✓")\r
5. **失败时**给出具体原因和解决步骤,不只是报错\r
\r
---\r
\r
## ADB 环境排查\r
\r
若 `adb` 命令找不到:\r
\r
```bash\r
# macOS / Linux 检查\r
echo $ANDROID_HOME\r
ls $ANDROID_HOME/platform-tools/adb\r
\r
# Windows 检查\r
echo %ANDROID_HOME%\r
where adb\r
```\r
\r
**下载地址**:https://developer.android.com/studio/releases/platform-tools\r
\r
**PATH 配置**(以 macOS/Linux 为例):\r
```bash\r
export ANDROID_HOME=$HOME/Library/Android/sdk # macOS\r
export PATH=$PATH:$ANDROID_HOME/platform-tools\r
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install android-adb-skill - After installation, invoke the skill by name or use
/android-adb-skill - Provide required inputs per the skill's parameter spec and get structured output
What is Android Adb Skill?
Android 开发调试技能,通过系统 ADB 工具操作 Android 设备。以下场景必须触发此技能:(1) 直接 ADB 操作——安装 APK、查看设备列表、抓取 logcat 日志、查看已安装应用、清除应用数据、截图、重启设备、拉取/推送文件、查看 CPU/内存/电池信息、adb shell 操作;(2)... It is an AI Agent Skill for Claude Code / OpenClaw, with 96 downloads so far.
How do I install Android Adb Skill?
Run "/install android-adb-skill" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Android Adb Skill free?
Yes, Android Adb Skill is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Android Adb Skill support?
Android Adb Skill is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Android Adb Skill?
It is built and maintained by yhongm (@yhongm); the current version is v1.0.0.