Hey r/androiddev 👋

A few years ago I built Spock ADB, an Android Studio plugin to make some of my everyday ADB workflows easier.

Then, like many side projects, I stopped actively working on it for a while.

Recently I came back to the project and started rebuilding and expanding it again. What began as a collection of useful ADB actions has gradually turned into more of a debugging workspace for Android, centered around one selected device + app.

The original problem is still the same:

Android Studio → Terminal → adb → Logcat → device Settings → back to Android Studio

I wanted to reduce that context switching and keep more of the debugging workflow inside the IDE.

Spock follows your Android Studio run target by default, and that same device + app is shared across its screen inspector, Logcat, storage, background work, actions, timeline, and AI tools.

A few of the things I've added while working on it again

Diagnose Current Screen

Instead of manually gathering context when something looks wrong, Spock can collect:

  • Current Activity and Fragments
  • activity back stack
  • screenshot
  • relevant Logcat problems
  • UI + accessibility information
  • process state
  • permissions
  • jobs and alarms
  • Doze / standby / battery state

Activities and fragments can also link directly back to their source in the project.

Debug Timeline

This is probably one of my favorite additions.

It puts debugging events on one timeline:

  • Activity / Fragment lifecycle
  • process starts and deaths
  • crashes and ANRs
  • warnings and errors
  • actions executed through Spock
  • storage changes
  • jobs
  • device state changes
  • AI/MCP calls

You can select a range and copy/export it when creating a bug report.

UI Tree

The UI inspector supports Views, Compose and hybrid screens.

You can inspect semantics, bounds, text, content descriptions and test tags, plus:

  • jump from an element to its source
  • generate Compose / UI Automator selectors
  • detect ambiguous selectors
  • run basic accessibility checks
  • inspect Compose recompositions
The usual ADB workflows are still there too
  • Restart / Force Stop / Attach Debugger
  • Process death testing for state restoration
  • grant / revoke permissions
  • browse + edit SharedPreferences and Preferences DataStore
  • app-scoped Logcat with crash / ANR / network filters
  • send FCM test messages over ADB without a registration token
  • deep links
  • HTTP proxy
  • Don't Keep Activities / Show Taps / Layout Bounds / animation scales
  • inspect WorkManager / JobScheduler jobs and alarms
  • simulate Doze, standby bucket, battery and charging conditions
  • ADB command runner with autocomplete, history and favourites

There's also a searchable Spock Actions popup for running common actions without opening the tool windows.

AI / MCP

One of the bigger things I added after coming back to the project is a built-in MCP server.

Spock exposes 69 structured Android debugging tools to Claude Code, Cursor and other MCP clients.

The goal isn't to simply give an AI agent shell access to adb.

It's to give it structured access to the same debugging information available in the IDE:

Activity · Fragments · UI tree · Logcat · Screenshots · Storage · Background work · Device state

It can also perform things like:

Launch · Tap · Input text · Deep links · lifecycle operations

MCP is off by default, destructive actions can require approval, and tool calls are visible in the IDE.

There's also Copy screen for AI, which generates a redacted diagnosis of the current screen.

Free + open source

JetBrains Marketplace:
https://plugins.jetbrains.com/plugin/11591-spock-adb

GitHub:
https://github.com/WahdanZ/SpockAdb

Coming back to an old project after years has been interesting because I'm basically solving the same Android debugging annoyances again, but with much better tooling available now.

I'd love some feedback from people here:

What Android debugging workflow still makes you leave the IDE or run an adb command manually?

That's usually where I get ideas for what to improve next.

submitted by /u/midowahdan
[link] [comments]