Android Adb

httprunner/skills/android-adb

作者 httprunnera2f2c13619bd43cf8fca5319273725c156507840无许可证收录于 2026年10月9日更新于 2026年10月9日

Android device control via raw ADB commands. Use for device/emulator discovery, USB or Wi-Fi connection, app launch/force-stop, tap/swipe/keyevent/text input, screenshots, UI hierarchy dump, and ADB troubleshooting.

AI 生成的概览

使用原始 ADB 命令控制 Android 设备与模拟器的参考指南。

功能
该技能是一份通过原始 adb 命令操作 Android 设备与模拟器的命令参考。内容涵盖设备与服务器管理、USB 与 Wi-Fi 连接、应用启动与强制停止、点击、滑动、按键事件与文本输入、截图、UI 层级转储、APK 安装与卸载以及常用按键码。它还列出执行约束,例如多设备连接时指定序列号、坐标操作前确认屏幕分辨率。其产出为实际执行的设备操作以及截图、UI XML 转储等采集文件。
适用场景
适用于需要发现、通过 USB 或 Wi-Fi 连接 Android 设备或模拟器,或用点击、滑动、按键事件和文本输入操作设备的场景。也适用于截取屏幕截图或 UI 层级转储,以及排查 ADB 连接或授权问题。
运行要求
需要 adb 命令行工具以及已连接的 Android 设备或模拟器,并具备到设备的 USB 或网络访问。Wi-Fi 连接需先用 USB 启用 tcpip;中日韩及特殊字符输入需安装 ADB Keyboard 并设为当前输入法。不附带脚本,仅为说明文档。

Android ADB

Reference for controlling Android devices with raw adb commands.

Execution Constraints

  • Use adb -s <serial> whenever more than one device is connected.
  • Confirm screen resolution before coordinate actions: adb -s SERIAL shell wm size.
  • Ask for missing required inputs before executing (serial, package/activity, coordinates, APK path).
  • Surface actionable stderr on failure (authorization, cable/network, tcpip state).
  • Prefer ADB Keyboard broadcast for CJK and special character input when ADB Keyboard is installed.

Device And Server

bash
# Start ADB serveradb start-server
# Stop ADB serveradb kill-server
# List devicesadb devices -l
# Target a specific device (use when multiple devices are online)adb -s SERIAL <command>

Wi-Fi Connection

bash
# Enable tcpip (USB required first)adb -s SERIAL tcpip 5555
# Get device IPadb -s SERIAL shell ip route | grep src# oradb -s SERIAL shell ip addr show wlan0
# Connect over networkadb connect <ip>:5555
# Disconnectadb disconnect <ip>:5555

Device State

bash
# Screen sizeadb -s SERIAL shell wm size
# Current foreground app (package/activity from mCurrentFocus)adb -s SERIAL shell dumpsys window | grep -E 'mCurrentFocus|mFocusedApp'
# Get home launcher package (for back-home detection)adb -s SERIAL shell cmd package resolve-activity --brief -c android.intent.category.HOME
# Raw shell commandadb -s SERIAL shell <command>

App Lifecycle

bash
# Verify package installedadb -s SERIAL shell pm list packages | grep <package>
# Launch by package (via monkey)adb -s SERIAL shell monkey -p <package> -c android.intent.category.LAUNCHER 1
# Launch by activityadb -s SERIAL shell am start -W -n <package>/<activity>
# Launch by URI/schemeadb -s SERIAL shell am start -W -a android.intent.action.VIEW -d "<scheme://path>"
# Force-stopadb -s SERIAL shell am force-stop <package>

Input Actions

bash
# Tapadb -s SERIAL shell input tap X Y
# Double tap (two taps with short delay)adb -s SERIAL shell input tap X Y && sleep 0.1 && adb -s SERIAL shell input tap X Y
# Long press (swipe to same point with duration)adb -s SERIAL shell input swipe X Y X Y 3000
# Swipeadb -s SERIAL shell input swipe X1 Y1 X2 Y2 [duration_ms]
# Key eventadb -s SERIAL shell input keyevent KEYCODE_BACKadb -s SERIAL shell input keyevent KEYCODE_HOMEadb -s SERIAL shell input keyevent KEYCODE_ENTER
# Return to home (press BACK repeatedly, check foreground against home launcher)for i in $(seq 1 20); do  adb -s SERIAL shell input keyevent KEYCODE_BACK  sleep 0.5  # Check if home reached by comparing current focus to home package  CURRENT=$(adb -s SERIAL shell dumpsys window | grep mCurrentFocus)  echo "Round $i: $CURRENT"done

Text Input

bash
# Plain text input (ASCII only, spaces escaped as %s)adb -s SERIAL shell input text "hello%sworld"
# Input via ADB Keyboard (supports CJK and special characters)# First ensure ADB Keyboard is active:adb -s SERIAL shell ime set com.android.adbkeyboard/.AdbIME# Then send text (base64 encoded):adb -s SERIAL shell am broadcast -a ADB_INPUT_B64 --es msg "$(echo -n 'your text' | base64)"
# Clear text via ADB Keyboardadb -s SERIAL shell am broadcast -a ADB_CLEAR_TEXT

Screenshot And UI Tree

bash
# Screenshot to local fileadb -s SERIAL exec-out screencap -p > screenshot.png
# Screenshot to device then pulladb -s SERIAL shell screencap -p /sdcard/screen.pngadb -s SERIAL pull /sdcard/screen.png ./screen.png
# Dump UI hierarchy XMLadb -s SERIAL shell uiautomator dump /sdcard/window_dump.xmladb -s SERIAL pull /sdcard/window_dump.xml ./window_dump.xml

App Install And Uninstall

bash
# Install APK (replace existing)adb -s SERIAL install -r /path/to/app.apk
# Uninstalladb -s SERIAL uninstall <package>

Common Keycodes

KeycodeDescription
KEYCODE_BACKBack button
KEYCODE_HOMEHome button
KEYCODE_ENTEREnter/confirm
KEYCODE_DELDelete/backspace
KEYCODE_VOLUME_UPVolume up
KEYCODE_VOLUME_DOWNVolume down
KEYCODE_POWERPower button
KEYCODE_TABTab key
KEYCODE_ESCAPEEscape key

来源与署名

来源:httprunner/skills位于android-adb提交a2f2c13

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架