Android 开发调试技能,通过系统 ADB 工具操作 Android 设备。以下场景必须触发此技能:(1) 直接 ADB 操作——安装 APK、查看设备列表、抓取 logcat 日志、查看已安装应用、清除应用数据、截图、重启设备、拉取/推送文件、查看 CPU/内存/电池信息、adb shell 操作;(2)...
Android ADB 调试技能是一项面向实际任务的技能,主要用于此技能通过调用系统环境变量中的 adb 命令操作 Android 设备;执行任何 ADB 操作前,必须先执行「设备检测流程」;
构建 APK: flu。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
此技能通过调用系统环境变量中的 adb 命令操作 Android 设备。执行任何 ADB 操作前,必须先执行「设备检测流程」。
每当完成 Android 端代码修改(包括 Flutter Android、原生 Android 等),必须在回复末尾主动附上以下提示:
📱 代码已修改,建议通过 ADB 验证效果:
- 构建 APK:
flutter build apk --debug/./gradlew assembleDebug- 检测设备并安装:(执行设备检测流程 → 自动安装)
- 查看运行日志:
adb logcat --pid=$(adb shell pidof <包名>)需要我帮你执行安装和日志监控吗?
不要等用户主动询问,编码任务完成即触发此提示。
每次执行 ADB 操作前必须先运行设备检测。
# 检测 adb 是否可用 which adb || echo "ADB_NOT_FOUND" # 获取已连接设备列表 adb devices
| 情况 | 处理方式 |
|---|---|
| adb 命令不存在 | 提示用户安装 Android SDK Platform Tools,并给出下载地址 |
| 0 台设备 | 提示用户连接设备或开启 USB 调试,给出排查步骤 |
| 1 台设备 | 直接执行,无需用户确认 |
| 多台设备 | 展示设备列表,让用户选择目标设备,所有后续命令加 -s 参数 |
检测到 N 台已连接的 Android 设备: 序号 设备序列号 状态 设备信息 1 emulator-5554 online [模拟器] 2 R3CT90BFXXX online [获取型号] 3 192.168.1.100:5555 online [无线连接] 请输入序号选择目标设备:
获取设备型号:
adb -sshell getprop ro.product.model
# 单设备 adb install -r# 指定设备 adb -s install -r # 常用参数说明: # -r 允许覆盖安装(保留数据) # -d 允许降级安装 # -g 自动授予所有运行时权限(Android 6.0+) # -t 允许安装测试 APK
安装结果判断:
Success → 安装成功,显示包名INSTALL_FAILED_* → 解析错误码并给出中文说明和解决方案常见错误码对照表见 references/install-errors.md
# 清除旧日志 adb [-s] logcat -c # 按包名过滤(需先获取 PID) PID=$(adb [-s ] shell pidof ) adb [-s ] logcat --pid=$PID # 按 Tag 过滤 adb [-s ] logcat -s :V # 按级别过滤(V/D/I/W/E/F) adb [-s ] logcat *:E # 保存到文件 adb [-s ] logcat --pid=$PID > logcat_$(date +%Y%m%d_%H%M%S).log # 实时过滤关键词 adb [-s ] logcat | grep
用户输入包名时的标准流程:
pidof 获取 PID# 所有应用 adb [-s] shell pm list packages # 只看第三方应用(用户安装的) adb [-s ] shell pm list packages -3 # 只看系统应用 adb [-s ] shell pm list packages -s # 包含 APK 路径 adb [-s ] shell pm list packages -f # 搜索关键词(如 "wechat") adb [-s ] shell pm list packages | grep # 获取应用详细信息 adb [-s ] shell dumpsys package
输出格式化:去掉 package: 前缀,每行一个包名,按字母排序后展示。
# 卸载(保留数据) adb [-s] shell pm uninstall -k # 完全卸载 adb [-s ] uninstall
adb [-s] shell pm clear
# 启动应用(需要知道 MainActivity) adb [-s] shell monkey -p -c android.intent.category.LAUNCHER 1 # 强制停止 adb [-s ] shell am force-stop # 启动指定 Activity adb [-s ] shell am start -n /
# 截图并拉取到本地 adb [-s] shell screencap /sdcard/screenshot.png adb [-s ] pull /sdcard/screenshot.png ./screenshot_$(date +%Y%m%d_%H%M%S).png # 录屏(最长3分钟,Ctrl+C 停止) adb [-s ] shell screenrecord /sdcard/record.mp4 adb [-s ] pull /sdcard/record.mp4 ./record_$(date +%Y%m%d_%H%M%S).mp4
# 推送文件到设备 adb [-s] push # 从设备拉取文件 adb [-s ] pull
# 设备型号 adb [-s] shell getprop ro.product.model # Android 版本 adb [-s ] shell getprop ro.build.version.release # API Level adb [-s ] shell getprop ro.build.version.sdk # 电池信息 adb [-s ] shell dumpsys battery # CPU 信息 adb [-s ] shell cat /proc/cpuinfo # 内存信息 adb [-s ] shell cat /proc/meminfo # 应用内存占用 adb [-s ] shell dumpsys meminfo # 设备 IP 地址 adb [-s ] shell ip addr show wlan0
# USB 连接后,开启 TCP 模式(Android 11 以下) adb [-s] tcpip 5555 adb connect :5555 # Android 11+ 无线配对(设置 → 开发者选项 → 无线调试) adb pair : # 输入配对码 adb connect :5555
# 正常重启 adb [-s] reboot # 重启到 Recovery adb [-s ] reboot recovery # 重启到 Bootloader adb [-s ] reboot bootloader
若 adb 命令找不到:
# macOS / Linux 检查 echo $ANDROID_HOME ls $ANDROID_HOME/platform-tools/adb # Windows 检查 echo %ANDROID_HOME% where adb
下载地址:https://developer.android.com/studio/releases/platform-tools
PATH 配置(以 macOS/Linux 为例):
export ANDROID_HOME=$HOME/Library/Android/sdk # macOS export PATH=$PATH:$ANDROID_HOME/platform-tools