| name | android-adb |
| description | 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. |
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
adb start-server
adb kill-server
adb devices -l
adb -s SERIAL <command>
Wi-Fi Connection
adb -s SERIAL tcpip 5555
adb -s SERIAL shell ip route | grep src
adb -s SERIAL shell ip addr show wlan0
adb connect <ip>:5555
adb disconnect <ip>:5555
Device State
adb -s SERIAL shell wm size
adb -s SERIAL shell dumpsys window | grep -E 'mCurrentFocus|mFocusedApp'
adb -s SERIAL shell cmd package resolve-activity --brief -c android.intent.category.HOME
adb -s SERIAL shell <command>
App Lifecycle
adb -s SERIAL shell pm list packages | grep <package>
adb -s SERIAL shell monkey -p <package> -c android.intent.category.LAUNCHER 1
adb -s SERIAL shell am start -W -n <package>/<activity>
adb -s SERIAL shell am start -W -a android.intent.action.VIEW -d "<scheme://path>"
adb -s SERIAL shell am force-stop <package>
Input Actions
adb -s SERIAL shell input tap X Y
adb -s SERIAL shell input tap X Y && sleep 0.1 && adb -s SERIAL shell input tap X Y
adb -s SERIAL shell input swipe X Y X Y 3000
adb -s SERIAL shell input swipe X1 Y1 X2 Y2 [duration_ms]
adb -s SERIAL shell input keyevent KEYCODE_BACK
adb -s SERIAL shell input keyevent KEYCODE_HOME
adb -s SERIAL shell input keyevent KEYCODE_ENTER
for i in $(seq 1 20); do
adb -s SERIAL shell input keyevent KEYCODE_BACK
sleep 0.5
CURRENT=$(adb -s SERIAL shell dumpsys window | grep mCurrentFocus)
echo "Round $i: $CURRENT"
done
Text Input
adb -s SERIAL shell input text "hello%sworld"
adb -s SERIAL shell ime set com.android.adbkeyboard/.AdbIME
adb -s SERIAL shell am broadcast -a ADB_INPUT_B64 --es msg "$(echo -n 'your text' | base64)"
adb -s SERIAL shell am broadcast -a ADB_CLEAR_TEXT
Screenshot And UI Tree
adb -s SERIAL exec-out screencap -p > screenshot.png
adb -s SERIAL shell screencap -p /sdcard/screen.png
adb -s SERIAL pull /sdcard/screen.png ./screen.png
adb -s SERIAL shell uiautomator dump /sdcard/window_dump.xml
adb -s SERIAL pull /sdcard/window_dump.xml ./window_dump.xml
App Install And Uninstall
adb -s SERIAL install -r /path/to/app.apk
adb -s SERIAL uninstall <package>
Common Keycodes
| Keycode | Description |
|---|
KEYCODE_BACK | Back button |
KEYCODE_HOME | Home button |
KEYCODE_ENTER | Enter/confirm |
KEYCODE_DEL | Delete/backspace |
KEYCODE_VOLUME_UP | Volume up |
KEYCODE_VOLUME_DOWN | Volume down |
KEYCODE_POWER | Power button |
KEYCODE_TAB | Tab key |
KEYCODE_ESCAPE | Escape key |