Agent skill

Understanding Adb Architecture

by skydoves in skydoves/android-testing-skills

A skill your agent uses to reason about the three-piece ADB topology (client CLI, host server on TCP 5037, on-device daemon adbd), the lifecycle commands adb start-server / adb kill-server / adb…

Apache-2.0Auto-check passedMobile

Install Understanding Adb Architecture

skills CLI
$ npx skills add skydoves/android-testing-skills --skill understanding-adb-architecture -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install skydoves/android-testing-skills understanding-adb-architecture --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/skydoves/android-testing-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/adb/architecture/understanding-adb-architecture .claude/skills/understanding-adb-architecture && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
understanding-adb-architecture
GitHub stars
333
Token cost
~3.7k tokens
SKILL.md length
1,355 words
Files
1
Skills in repo
50
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses to reason about the three-piece ADB topology (client CLI, host server on TCP 5037, on-device daemon adbd), the lifecycle commands adb start-server / adb kill-server / adb…

  • Reason about the three-piece ADB topology (client CLI
  • SKILL.md covers When to use this skill, When NOT to use this skill, Prerequisites and Workflow, plus 4 more sections
  • Calls adb and brew
  • Host server on TCP 5037

What it does

Understanding Adb Architecture is an agent skill from skydoves/android-testing-skills. Use this skill to reason about the three-piece ADB topology (client CLI, host server on TCP 5037, on-device daemon adbd), the lifecycle commands adb start-server / adb kill-server / adb reconnect, ADB environment variables (ADBTRACE, ADBVENDORKEYS, ANDROIDADBSERVERPORT, ANDROIDSERIAL, ADBLOCALTRANSPORTMAXPORT, ADBMDNSAUTOCONNECT, ADBMDNSOPENSCREEN, ADBLIBUSB, ADBBURSTMODE), the host RSA key pair under ~/.android/, the server log location, and version mismatches between Android Studio's bundled platform-tools and…

Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Mobile testing and debugging. It works with Android. The repository describes itself as: ⚡️ A set of skills for Android testing: Compose UI, AndroidX Test, JVM unit tests, and ADB. The licence is Apache-2.0.

When your agent uses it

  • Reason about the three-piece ADB topology (client CLI
  • Host server on TCP 5037
  • On-device daemon adbd)
  • The lifecycle commands adb start-server / adb kill-server / adb reconnect

Example prompts

  • “adb is being weird”
  • “what does adb actually do”
  • “/understanding-adb-architecture”

What it can do on your machine

Read from SKILL.md and the folder at commit 8665ed5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • adb
    • brew

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developer.android.com
    • android.googlesource.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Understanding Adb Architecture loads about 3.7k tokens when it runs. Until then it costs about 218 tokens; SKILL.md has 1,355 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~218
When it runs · the whole SKILL.md, loaded when a task matches
~3.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from skydoves/android-testing-skills at commit 8665ed5, republished under its Apache-2.0 licence (© skydoves). 1,355 words, ~3,745 tokens.

Download SKILL.mdSave it as .claude/skills/understanding-adb-architecture/SKILL.md (or your agent's skills folder).
name
understanding-adb-architecture
description
Use this skill to reason about the three-piece ADB topology (client CLI, host server on TCP 5037, on-device daemon `adbd`), the lifecycle commands `adb start-server` / `adb kill-server` / `adb reconnect`, ADB environment variables (`ADB_TRACE`, `ADB_VENDOR_KEYS`, `ANDROID_ADB_SERVER_PORT`, `ANDROID_SERIAL`, `ADB_LOCAL_TRANSPORT_MAX_PORT`, `ADB_MDNS_AUTO_CONNECT`, `ADB_MDNS_OPENSCREEN`, `ADB_LIBUSB`, `ADB_BURST_MODE`), the host RSA key pair under `~/.android/`, the server log location, and version mismatches between Android Studio's bundled `platform-tools` and a system-installed `adb`. Use when the user mentions `daemon not running; starting now`, `server version doesn't match`, port 5037 collisions, ADB_TRACE, vendor keys, mDNS Openscreen vs Bonjour, libusb regressions, "adb is being weird", or asks "what does adb actually do".
license
Apache-2.0. See LICENSE for complete terms.
metadata.author
Jaewoong Eum (skydoves)
metadata.keywords
adb, android-debug-bridge, platform-tools, adbd, port-5037, ADB_TRACE, ADB_VENDOR_KEYS, server-version-mismatch, rsa-adbkey, libusb-backend

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

  • Android SDK Platform-Tools installed (path resolution rules below).
  • Shell access to a workstation with adb on $PATH.
  • For diagnostic flows: write access to $TMPDIR (macOS/Linux) or %TEMP% (Windows).

Workflow

  • 1. Internalize the three-piece model. From developer.android.com/tools/adb (Overview):

    • Client (adb CLI) — invoked from the terminal. Serializes commands and ships them to the server over a local TCP socket.
    • Server (adb-server) — host-side background process. Multiplexes commands from many clients, tracks connected transports, forwards traffic to adbd. Binds TCP port 5037 on localhost by default.
    • Daemon (adbd) — runs on the device. Spawned by init on userdebug/eng builds, and by the system on user builds. Receives commands from the host server over USB or TCP and executes them in the device's userspace.
  • 2. Recognize the implicit start-server print. The first adb command on a fresh shell emits:

    * daemon not running; starting now at tcp:5037
    * daemon started successfully

    This is informational, not an error — adb auto-starts the server when none is running. Skipping over this fact wastes hours of debugging.

  • 3. Use the lifecycle commands surgically:

    CommandEffect
    adb start-serverEnsures a server is running on port 5037. If a compatible server is already running, it's a no-op (idempotent). If a different process is bound to 5037 (or an older incompatible adb server), start-server fails — see the port-collision pattern below.
    adb kill-serverTerminates the local server. The next adb command respawns it.
    adb reconnect"Kick connection from host side to force reconnect." Useful for a stuck USB transport.
    adb reconnect device"Kick connection from device side." Asks adbd to drop and re-handshake.
    adb reconnect offline"Reset offline/unauthorized devices to force reconnect." Targets only the misbehaving transports.
    adb -P PORT ...Override the server port (default 5037). Same as ANDROID_ADB_SERVER_PORT.

    Stuck-transport recovery recipe:

    bash
    adb reconnect offline
    # if that fails:
    adb kill-server && adb start-server && adb devices
  • 4. Resolve the binary path explicitly. adb ships in Android SDK Platform-Tools (android_sdk/platform-tools/). Check what is actually loaded:

    bash
    adb --version
    which -a adb         # find shadowed copies

    Sample adb --version output decoded:

    Android Debug Bridge version 1.0.41         # wire-protocol version (stable for years)
    Version 35.0.2-12147458                      # platform-tools release + Google build number
    Installed as /opt/homebrew/bin/adb           # the actual file the OS resolved
    Running on Darwin 24.6.0 (arm64)

    The wire-protocol number is what matters for cross-compatibility: client and server must agree, or the first command kills the older server with adb server version (XX) doesn't match this client (YY); killing....

  • 5. Pick ONE canonical adb when Android Studio is involved. Studio bundles and auto-updates its own platform-tools/. If a system / Homebrew adb is also on $PATH, three failure modes appear:

    1. Version skew — first command issued by either kills the running server.
    2. Two competing servers ping-ponging port 5037.
    3. Different default backends (libusb vs. native) producing inconsistent device enumeration. Resolution rule of thumb: export PATH="$ANDROID_HOME/platform-tools:$PATH" so CLI and Studio agree, then adb kill-server once.
  • 6. Know the environment variables (verbatim, from adb help):

    VariablePurpose
    ADB_TRACEComma/space-separated debug categories. Tokens: all,adb,sockets,packets,rwx,usb,sync,sysdeps,transport,jdwp,services,auth,fdevent,shell,incremental.
    ADB_VENDOR_KEYSColon-separated paths to RSA key files/dirs. Use on CI to skip the "Allow USB debugging?" prompt.
    ANDROID_SERIALDefault device serial (equivalent to -s). Overridden by -s.
    ANDROID_ADB_SERVER_PORTOverride the server port (default 5037). Equivalent to -P PORT.
    ADB_LOCAL_TRANSPORT_MAX_PORTHighest odd port scanned for emulators. Default 5585 (16 emulators).
    ADB_MDNS_AUTO_CONNECTCSV of mDNS service types eligible for auto-connect. Default: adb-tls-connect.
    ADB_MDNS_OPENSCREEN1/0. Force the Openscreen mDNS backend. Default Openscreen on Linux/Windows from ADB v34+ — the public doc lags.
    ADB_LIBUSB1/0. Force the libusb USB backend.
    ADB_BURST_MODE1/0. Pipeline packets without ACK. Experimental, ADB 36.0.0+.

    Diagnostic recipe with maximum verbosity:

    bash
    ADB_TRACE=all adb devices -l 2>~/adb-trace.log

    CI runner with a preinstalled key and custom port:

    bash
    export ADB_VENDOR_KEYS=/etc/adb/ci-key
    export ANDROID_ADB_SERVER_PORT=5038
    export ADB_LOCAL_TRANSPORT_MAX_PORT=5617
    adb start-server
  • 7. Find the server log when something is wrong. The server keeps a persistent log distinct from per-command ADB_TRACE output and from logcat:

    OSPath
    macOS$TMPDIR/adb.$UID.log (e.g. /var/folders/.../T/adb.501.log)
    Linux$TMPDIR/adb.$UID.log (e.g. /tmp/adb.1000.log)
    Windows%TEMP%\adb.log
    Useful flow:
    bash
    adb kill-server
    ADB_TRACE=adb,transport,auth adb start-server
    adb devices -l
    ls -lh "$TMPDIR/adb.$UID.log"
  • 8. Treat ~/.android/ as load-bearing. RSA keypair: ~/.android/adbkey (private), ~/.android/adbkey.pub (public). Generated on first adb invocation. Every accepted "Allow USB debugging?" dialog appends this public key to /data/misc/adb/adb_keys on the device. Wiping the local key invalidates every device the user previously authorized — see the WRONG/RIGHT pair below.

  • 9. Accept the libusb v36 regression on Linux as background context. ADB v36.0.0 (Apr 2025) shipped a rewritten libusb backend with hot-plug. ADB v36.0.2 (Sep 2025) reverted libusb as the Linux default because of instability. CI runners pinned to specific platform-tools versions need to know which side of that revert they sit on; force the backend explicitly with ADB_LIBUSB=0 or =1 if reproducibility matters.

Show full SKILL.md (385 more words)Show less

Patterns

Pattern: WRONG vs RIGHT — recovering from unauthorized or offline device
bash
# WRONG
rm -rf ~/.android/adbkey ~/.android/adbkey.pub
adb kill-server
adb start-server
# WRONG because: this rotates the host RSA keypair. Every previously authorized
# device now sees an unknown public key and re-prompts the "Allow USB debugging?"
# dialog. CI runners and headless test farms break silently because nobody is
# there to tap "Allow". Worse, the key on /data/misc/adb/adb_keys for the old
# pubkey lingers as orphan data.
bash
# RIGHT
adb reconnect offline           # try a targeted reset first
adb devices                     # confirm the state changed
# if still offline:
adb kill-server && adb start-server
# if still unauthorized: unlock the device, re-tap "Allow USB debugging?"

The keypair only needs regenerating when it is genuinely lost or corrupted; in that case, adb keygen ~/.android/adbkey rebuilds it deliberately and the user accepts that every device must re-authorize.

Pattern: WRONG vs RIGHT — two competing adb installs
bash
# WRONG
brew install android-platform-tools     # installs adb to /opt/homebrew/bin
# Studio also auto-updates ~/Library/Android/sdk/platform-tools/adb
# PATH puts /opt/homebrew/bin first.
# Studio's "Run" button uses ~/Library/Android/sdk/platform-tools/adb (different version).
# First command issued by either side prints:
#   adb server version (41) doesn't match this client (40); killing...
# WRONG because: every Run-button invocation kills the server you started,
# yanks transports out from under Logcat, and reissues "daemon not running".
bash
# RIGHT
# Pick one canonical adb. Easiest: prefer Studio's bundled platform-tools.
export ANDROID_HOME="$HOME/Library/Android/sdk"
export PATH="$ANDROID_HOME/platform-tools:$PATH"
adb kill-server                  # clear stale state once
adb --version                    # confirm path matches Studio's
Pattern: WRONG vs RIGHT — port 5037 already in use
bash
# WRONG
# Some other tool (nc, a proxy, a stale adb-server zombie) is bound to 5037.
adb start-server   # silently fails; subsequent adb devices hangs.
bash
# RIGHT
lsof -nP -iTCP:5037 -sTCP:LISTEN     # find the holder (macOS/Linux)
# kill the squatter, OR run a second adb server on a different port:
ANDROID_ADB_SERVER_PORT=5038 adb start-server
ANDROID_ADB_SERVER_PORT=5038 adb devices

Mandatory rules

  • MUST treat * daemon not running; starting now at tcp:5037 * as informational, not an error.
  • MUST keep ONE adb binary first on $PATH. Mixing Studio-bundled and system-installed adb of different versions causes server ping-pong.
  • MUST preserve ~/.android/adbkey and ~/.android/adbkey.pub across machine moves; wiping them silently breaks every previously authorized device.
  • MUST NOT delete ~/.android/adbkey* as a "fix" for unauthorized or offline devices — use adb reconnect offline first.
  • MUST NOT run two adb servers on port 5037 simultaneously. Use ANDROID_ADB_SERVER_PORT (or -P PORT) for sharded CI.
  • PREFERRED: put export PATH="$ANDROID_HOME/platform-tools:$PATH" in the shell profile so the CLI and Studio resolve the same binary.
  • PREFERRED: when reporting a transport bug, attach the server log from $TMPDIR/adb.$UID.log (macOS/Linux) or %TEMP%\adb.log (Windows) plus an ADB_TRACE=adb,transport,auth reproduction.

Verification

  • adb --version prints a single binary path; which -a adb lists no shadowed copies.
  • adb start-server is idempotent — running it twice does not change anything.
  • adb kill-server && adb start-server && adb devices recovers a stuck transport.
  • ~/.android/adbkey and ~/.android/adbkey.pub exist and are not world-readable (chmod 600 ~/.android/adbkey).
  • ADB_TRACE=adb adb devices -l produces verbose transport logs without errors.
  • If running multiple adb servers, each has a distinct ANDROID_ADB_SERVER_PORT value and lsof -iTCP:5037 shows exactly one (or zero) listeners.
  • Server log file exists at $TMPDIR/adb.$UID.log (macOS/Linux) or %TEMP%\adb.log (Windows) and is recent.

References

  • ADB user guide (architecture and lifecycle): https://developer.android.com/tools/adb
  • Platform-tools release notes (version deltas, libusb default): https://developer.android.com/tools/releases/platform-tools
  • AOSP adb man page (canonical env-var reference): https://android.googlesource.com/platform/packages/modules/adb/+/refs/heads/main/docs/user/adb.1.md
  • Studio + AGP testing on the command line: https://developer.android.com/studio/test/command-line
  • Source-of-truth research notes (CORPUS §I, A1 report):
    • tasks/research/A1-adb-architecture-devices.md — three-piece model, env-var table, libusb v36 revert, Openscreen-vs-Bonjour default flip in ADB v34+, server log paths, RSA keypair handling.
    • docs/CORPUS.md §I.2 (three-piece architecture) and §I.10 (critical findings: force-stop ≠ pm clear, exit codes only with -w).
  • Sibling skills:
    • Connect a single device: ../../devices/connecting-to-devices/SKILL.md
    • Wireless ADB (Android 11+): ../../devices/connecting-over-wifi/SKILL.md
    • Install / manage apps: ../../apps/installing-and-managing-apps/SKILL.md
    • Run instrumented tests via am instrument: ../../tests/running-instrumented-tests-via-adb/SKILL.md
  • Cross-set neighbours:
    • Configure JUnit4 on Android: ../../../jvm-tests/runner/configuring-junit4-on-android/SKILL.md
    • Run instrumented tests with AndroidJUnit4: ../../../instrumentation/runner/running-instrumented-tests-with-androidjunit4/SKILL.md
    • Source-set strategy: ../../../fundamentals/strategies/organizing-test-source-sets/SKILL.md

© skydoves, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in adb/architecture/understanding-adb-architecture of skydoves/android-testing-skills.

Open the folder on GitHubat commit 8665ed5

Compare with similar skills

Understanding Adb Architecture next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Understanding Adb Architecture compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Understanding Adb Architecture this skillskydoves/android-testing-skills333—~3.7kAutomated safety check: PassApache-2.0
Phone HarnessShawnPana/phone-harness3.2k—~4.3kAutomated safety check: PassMIT
Mobile QAtloncorp/tlon-apps107—~2.4kAutomated safety check: PassMIT
Androidyang1ming/android-harness176—~259Automated safety check: PassMIT
Debug Receiverstimusus/Shuttle2229—~1.9kAutomated safety check: PassApache-2.0
Debug Bridgegetknit/knit132—~2.2kAutomated safety check: PassGPL-3.0

Similar skills

  • Phone Harness

    ShawnPana/phone-harness

    Control the user's phone — an iPhone through the Mac's iPhone Mirroring window, an Android over adb, or a rented cloud Android: open apps, tap, type, swipe, read the screen.

    3.2k GitHub stars~4.3k tokensUpdated today
    MobileAuto-check passed
  • Mobile QA

    tloncorp/tlon-apps

    Run a mobile QA checklist on a physical Android device over adb for tlon-apps, then triage what fails into fixes.

    107 GitHub stars~2.4k tokensUpdated today
    MobileAuto-check passed
  • Android

    yang1ming/android-harness

    Direct Android device control through ADB. An agent skill from yang1ming/android-harness.

    176 GitHub stars~259 tokensUpdated 2 mo ago
    MobileAuto-check passed
  • Debug Receivers

    timusus/Shuttle2

    Drive the S2 debug build's playback and queue over ADB broadcasts — play the whole library, play/pause, skip, seek, remove a queue item, toggle shuffle/repeat, dump playback state as JSON, reimport…

    229 GitHub stars~1.9k tokensUpdated today
    MobileAuto-check passed
  • Debug Bridge

    getknit/knit

    Drive and verify Knit on a device or emulator through the headless debug bridge (am broadcast to app.getknit.knit.debug.<ACTION, replies as JSON) — send a message on one phone and confirm it landed…

    132 GitHub stars~2.2k tokensUpdated 5 days ago
    MobileAuto-check passed
  • Android Emulator Skill

    Moustachauve/WLED-Android

    Production-ready scripts for Android app testing, building, and automation.

    169 GitHub starsUsed in 1 repo~911 tokens
    MobileAuto-check passed

More from skydoves/android-testing-skills

All 50 skills in this repo
  • Asserting Bounds And Dimensions

    skydoves/android-testing-skills

    A skill your agent uses to verify Compose layout measurements from a UI test using assertWidthIsEqualTo, assertHeightIsEqualTo, assertWidthIsAtLeast, assertHeightIsAtLeast…

    333 GitHub stars~3.3k tokensUpdated 4 mo ago
    Auto-check passed
  • Asserting Node State And Text

    skydoves/android-testing-skills

    A skill your agent uses to verify a Compose semantics node's properties from a UI test using assertExists, assertDoesNotExist, assertIsDisplayed, assertIsNotDisplayed, assertIsDeactivated…

    333 GitHub stars~3.6k tokensUpdated 4 mo ago
    Auto-check passed
  • Capturing Preview Screenshots In CI

    skydoves/android-testing-skills

    A skill your agent uses to render every Jetpack Compose @Preview as a screenshot on a real Android device or emulator and publish a browsable HTML catalog from CI.

    333 GitHub stars~4.5k tokensUpdated 4 mo ago
    Auto-check: notes
  • Capturing Screenshots And Screenrecord

    skydoves/android-testing-skills

    A skill your agent uses to capture visual artefacts from a device for test failures, golden image generation, QA repro, and demo videos.

    333 GitHub stars~3.7k tokensUpdated 4 mo ago
    Auto-check passed
  • Choosing Test Rule Vs Runtest

    skydoves/android-testing-skills

    A skill your agent uses to pick the correct Compose UI test entry point.

    333 GitHub stars~4.5k tokensUpdated 4 mo ago
    Auto-check passed
  • Choosing What To Test

    skydoves/android-testing-skills

    A skill your agent uses to pick which behaviors to cover in an Android test suite using Google's five-category state vocabulary plus the explicit "what NOT to test" list from…

    333 GitHub stars~4.6k tokensUpdated 4 mo ago
    Auto-check passed

Works with

Categories

Questions about Understanding Adb Architecture

What does Understanding Adb Architecture do?

A skill your agent uses to reason about the three-piece ADB topology (client CLI, host server on TCP 5037, on-device daemon adbd), the lifecycle commands adb start-server / adb kill-server / adb…. Understanding Adb Architecture is an agent skill from skydoves/android-testing-skills.

When should I use Understanding Adb Architecture?

Understanding Adb Architecture fits situations like: reason about the three-piece ADB topology (client CLI; host server on TCP 5037; on-device daemon adbd); the lifecycle commands adb start-server / adb kill-server / adb reconnect.

How do I install Understanding Adb Architecture in Claude Code?

Run `npx skills add skydoves/android-testing-skills --skill understanding-adb-architecture -a claude-code`. Or copy the skill folder (adb/architecture/understanding-adb-architecture in skydoves/android-testing-skills) into .claude/skills/understanding-adb-architecture in your project. Claude Code loads it when a task matches its description.

How do I install Understanding Adb Architecture in Codex?

Run `npx skills add skydoves/android-testing-skills --skill understanding-adb-architecture -a codex`. Or copy the skill folder (adb/architecture/understanding-adb-architecture in skydoves/android-testing-skills) into .agents/skills/understanding-adb-architecture in your project. Codex loads it when a task matches its description.

Can I use Understanding Adb Architecture in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add skydoves/android-testing-skills --skill understanding-adb-architecture -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/understanding-adb-architecture, .gemini/skills/understanding-adb-architecture, .github/skills/understanding-adb-architecture and .opencode/skills/understanding-adb-architecture in your project.

What does Understanding Adb Architecture need to run?

Going by SKILL.md and its folder, Understanding Adb Architecture needs the command-line tools its instructions call (adb and brew).

Does Understanding Adb Architecture access the network?

SKILL.md names 2 domains. As links in the text: developer.android.com and android.googlesource.com. This is read from the text; nothing was executed.

Is Understanding Adb Architecture safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Understanding Adb Architecture use?

Understanding Adb Architecture is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Understanding Adb Architecture use?

About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Understanding Adb Architecture?

Skills that share tags, products or a category with Understanding Adb Architecture: Phone Harness (ShawnPana/phone-harness, 3.2k stars), Mobile QA (tloncorp/tlon-apps, 107 stars), Android (yang1ming/android-harness, 176 stars) and Debug Receivers (timusus/Shuttle2, 229 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Understanding Adb Architecture?

skydoves (a GitHub user) maintains it in skydoves/android-testing-skills, which has 333 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on May 25, 2026.

Source: skydoves/android-testing-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.