understanding-adb-architecture

Installation
SKILL.md

Understanding ADB Architecture — Client, Server, Daemon

ADB is one binary that wears three hats. Most "adb is being weird" reports come from misunderstanding which hat is misbehaving (the local CLI, the long-lived host server on port 5037, or the on-device adbd), or from two different adb binaries fighting over the same port. This skill grounds the mental model so the rest of the ADB skill set has a stable foundation.

When to use this skill

  • The user sees * daemon not running; starting now at tcp:5037 * and assumes it is an error.
  • The user sees adb server version (XX) doesn't match this client (YY); killing... after Studio updates its bundled platform-tools.
  • The user wants to enable verbose ADB logging (ADB_TRACE) or set up a CI runner with a preinstalled vendor key.
  • The user asks why deleting ~/.android/adbkey breaks every other paired device.
  • The user is debugging port 5037 collisions, multiple adb installs, or libusb-related transport failures on Linux.

When NOT to use this skill

  • The user is troubleshooting a specific connected device (USB authorization, unauthorized, no permissions) — use ../../devices/connecting-to-devices/SKILL.md.
  • The user is setting up wireless / Wi-Fi ADB — use ../../devices/connecting-over-wifi/SKILL.md.
  • The user is running adb shell am instrument for tests — use ../../tests/running-instrumented-tests-via-adb/SKILL.md.

Prerequisites

Installs
37
GitHub Stars
319
First Seen
May 16, 2026
understanding-adb-architecture — skydoves/android-testing-skills