Android Adb

Polar Sponsor
爱发电 赞助
.NET 9.0

执行 Android ADB(Android 调试桥)命令,用于设备管理、应用管理、调试和自动化。当用户请求任何与 ADB 相关的操作时使用。

Android ADB.

功能概述

Android ADB.是一项面向实际任务的技能,主要用于Execut ADB通过自然语言或直接命令输入来指挥,并有多设备支持,安全护栏,以及沙箱式的ADB安装.;Workflow.;

核心要点

  • List设备:直接运行.。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。

使用与执行

该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Android ADB

支持通过自然语言或直接输入命令执行 ADB 操作,具备多设备支持、安全防护机制及沙箱化 ADB 安装能力。

工作流程

  1. 列出设备:直接运行 adb devices -l。若命令失败(提示 command not found),进入 ADB 解析流程查找或安装 adb,然后重试。
  2. 选择设备:若连接多个设备,先列出所有设备,并请用户选择目标设备。后续所有命令均需前置 -s 参数。
  3. 将请求翻译为 ADB 命令:根据用户意图映射到对应 ADB 命令。完整命令参考见 references/adb-commands.md。
  4. 安全检查:若命令具有破坏性(参见“危险操作”章节),需先向用户展示命令并获得明确确认后方可执行。
  5. 执行与反馈:运行命令,解析输出结果,并以清晰易读的方式呈现给用户。

ADB 解析

当系统中未找到 adb 时,通过 scripts/adb_env.sh 进行解析,查找顺序为:系统 PATH → 常见 SDK 路径(~/Library/Android/sdk/、~/Android/Sdk/)→ sandbox 本地路径(/tools/platform-tools/adb)。

若上述路径均未找到,向用户询问:“ADB 未安装,是否需要我帮你安装到 skill 本地目录?(不影响系统配置)”

若用户同意,则执行 bash /scripts/install_adb.sh(无需 sudo 权限,不修改 PATH;卸载方式为 rm -rf /tools/)。

多设备处理

当 adb devices -l 返回多个设备时:

  1. 显示带编号的设备列表,包含序列号(serial)、机型(model)和 Android 版本
  2. 请用户从中选择一个设备(或选择 “all” 进行广播操作)
  3. 记录所选设备的 serial,并在当前会话中所有命令前自动添加 -s
  4. 在 skill 目录下运行 bash scripts/device_check.sh 获取设备快速概览

安全等级

等级 行为 示例
安全 直接执行 adb devices、logcat、screencap、getprop、pull、文件列表类命令
中等风险 先展示命令,再执行 install、push、am start、input tap、pm grant
危险 展示命令、说明风险,并要求用户明确输入 “yes” 才可执行 pm clear、uninstall、factory reset、flash、wipe、reboot

快捷任务

设备信息

bash /scripts/device_check.sh

截图

bash /scripts/screenshot.sh [output_dir] [serial]

Logcat 日志捕获

bash /scripts/logcat_capture.sh all [output_file] [serial]
bash /scripts/logcat_capture.sh crash [output_file] [serial]
bash /scripts/logcat_capture.sh app  [output_file] [serial]
bash /scripts/logcat_capture.sh tag  [output_file] [serial]

长输出规则

当用户请求任何长时间运行或高冗余度的日志输出(如 logcat 流式输出、dropbox dump、dumpsys、大型 trace 输出等)时,除非用户明确指定了输出文件路径,否则一律新开一个系统终端窗口来显示输出。此举可为用户提供可滚动、可中断、专属的查看界面,且不会阻塞当前对话流。

仅当用户明确说出“保存到文件” / “输出到 xxx.txt” 或提供了具体文件路径时,才将内容写入文件。

macOS

osascript -e 'tell app "Terminal" to do script ""'

Linux(常见桌面环境)

# GNOME
gnome-terminal -- bash -c '; exec bash'
# KDE
konsole -e bash -c '; exec bash'
# 回退方案
x-terminal-emulator -e bash -c '; exec bash'

将 替换为实际命令,例如:

  • adb logcat —— 全量日志
  • adb logcat | grep -i "redirect" --line-buffered —— 按关键词过滤
  • adb logcat -s MyTag:D —— 按 Tag 过滤
  • adb logcat --pid=$(adb shell pidof com.example.app) —— 按应用进程过滤

zsh 兼容性说明

zsh 将 * 视为通配符。当命令中含 *(例如 Tag:*)时,必须在 osascript 字符串中对其转义:

# 错误 —— zsh 会提前展开 *
osascript -e 'tell app "Terminal" to do script "adb logcat -s MyTag:*"'
# 正确 —— 对 * 进行转义
osascript -e 'tell app "Terminal" to do script "adb logcat -s MyTag:\*"'

终端窗口启动后,需向用户明确报告:“已打开新终端窗口,正在运行以下命令:[命令]”。

常见场景

“安装这个 APK”

adb install -r 

若安装失败,请检查:设备存储空间(adb shell df -h)、已有应用版本、是否启用测试包标志(-t)。

“查看崩溃日志”

采用两级回退策略:

  1. logcat crash buffer(首选):
adb logcat -b crash -d | grep 
  1. dropbox(当 crash buffer 为空时启用):

⚠️ 强制规则:严禁主动挑选 dropbox 条目。必须先列出所有条目,等待用户选择后再输出内容。绝不允许跳过用户选择步骤。

步骤 1 —— 列出 dropbox 中所有 crash/anr 条目及其时间戳,供用户选择:

adb shell dumpsys dropbox | grep -E "^[0-9].*(_crash|_anr)" 

输出示例:

2026-04-09 11:04:34  data_app_anr (compressed text, 23807 bytes)
    Process: com.netease.cloudmusic:play/PID: 2553 ...
2026-04-09 10:23:45  data_app_crash (text, 1234 bytes)
    Process: com.example.app/PID: 1234 ...

步骤 2 —— 将列表完整呈现给用户(含完整日期时间、类型、进程信息),然后必须等待用户明确选择要查看哪一条。严禁自行判断、自动选择最近一条或任意一条。

步骤 3 —— 用户选择后,在新终端窗口中展示对应条目:

# 使用用户选择的条目的时间戳
adb shell dumpsys dropbox --print '' --since 

“导出 UI 层级结构”

采用两级回退策略:

  1. uiautomator dump(首选):
adb shell uiautomator dump /sdcard/ui_dump.xml
adb pull /sdcard/ui_dump.xml 
adb shell rm /sdcard/ui_dump.xml
  1. dumpsys activity top(回退方案 —— 部分设备如华为可能返回 could not get idle state):
adb shell dumpsys activity top -a > 

该方式输出基于文本的 View Hierarchy(非 XML 格式),但包含等效的结构化信息。

“屏幕录制”

adb shell screenrecord /sdcard/recording.mp4              # 默认最长 180 秒
adb shell screenrecord --time-limit 30 /sdcard/recording.mp4  # 限制为 30 秒
# 按 Ctrl+C 停止录制,然后拉取:
adb pull /sdcard/recording.mp4 
adb shell rm /sdcard/recording.mp4

“当前前台运行的是哪个应用?”

adb shell dumpsys activity activities | grep mResumedActivity

“应用性能检查”

adb shell dumpsys meminfo 
adb shell dumpsys gfxinfo 
adb shell dumpsys cpuinfo | grep 

“通过 WiFi 连接设备”

adb tcpip 5555
# 查看设备 IP(通常来自 wlan 接口):
adb shell ip route | grep wlan
adb connect :5555

危险操作

执行以下任一操作前,均须强制确认:

  • pm clear —— 永久清除应用数据
  • uninstall —— 卸载应用
  • rm -rf —— 删除文件或目录
  • reboot / reboot recovery / reboot bootloader
  • factory reset / wipe_data
  • fastboot flash —— 覆盖写入分区
  • pm disable-user —— 禁用系统应用
  • settings put —— 修改 system/secure/global 设置项
  • setprop —— 修改系统属性
  • su / adb root —— 提权至 root 权限
  • sideload —— 刷入 OTA 包
  • 对系统应用使用含 --user 0 的命令

需向用户准确展示待执行命令及一行风险说明,并等待其明确确认。

故障排查

问题 解决方法
device not found 检查 USB 数据线、确认开发者选项中已启用 USB 调试
device unauthorized 在设备上接受 RSA 密钥提示,或执行 adb kill-server && adb start-server
multiple devices 使用 -s 显式指定设备
INSTALL_FAILED_* 检查错误后缀 —— 常见情况:ALREADY_EXISTS(加 -r 参数重装)、INSUFFICIENT_STORAGE、OLDER_SDK
Permission denied 尝试 adb root 或 run-as
命令卡住(hang) 按 Ctrl+C 中断,再执行 adb kill-server && adb start-server

参考文档

完整的 ADB 命令速查表(按功能分类整理),详见 references/adb-commands.md。

相关专题

更多
Android语音播放功能实现方法
Android语音播放功能实现方法

实现方法有使用MediaPlayer实现、使用SoundPool实现两种。可以根据具体的需求选择适合的方法进行实现。想了解更多语音播放的相关内容,可以阅读本专题下面的文章。

2024.03.01

824

5

android重启应用的方法有哪些
android重启应用的方法有哪些

android重启应用有通过Intent、PendingIntent、系统服务、Runtime等方法。本专题为大家提供Android相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

465

5

android权限限制怎么解开
android权限限制怎么解开

android权限限制可以使用Root权限、第三方权限管理应用程序、ADB命令和Xposed框架解开。详细介绍:1、Root权限,通过获取Root权限,用户可以解锁所有权限,并对系统进行自定义和修改;2、第三方权限管理应用程序,用户可以轻松地控制和管理应用程序的权限;3、ADB命令,用户可以在设备上执行各种操作,包括解锁权限;4、Xposed框架,用户可以在不修改系统文件的情况下修改应用程序的行为和权限。

2023.09.19

3917

7

android是什么系统
android是什么系统

Android是一种功能强大、灵活可定制、应用丰富、多任务处理能力强、兼容性好、网络连接能力强的操作系统。本专题为大家提供android相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.22

2247

5

android开发三大框架
android开发三大框架

android开发三大框架是XUtil框架、volley框架、ImageLoader框架。本专题为大家提供android开发三大框架相关的各种文章、以及下载和课程。

2023.08.14

842

4

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

2026.10.08

0

20

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

0

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

0

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

0

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 43.9万人学习

Java 教程
Java 教程

共578课时 | 189.9万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 9.5万人学习