dumpsys is the tool Android's own system services use to report their internal state for debugging, and it ships on every device without any extra setup. Where logcat shows a scrolling stream of events as they happen, dumpsys gives you a snapshot of a service's current state on demand — battery stats, running activities, current window focus, package install details, and dozens of other subsystems, each accessible by name.
adb shell dumpsys -l
This prints every registered system service that supports a dumpsys report. The list varies somewhat by Android version and OEM skin, but a core set — battery, activity, window, package, meminfo, wifi, connectivity — is present on virtually every device.
adb shell dumpsys battery
Reports charge level, charging status, voltage, temperature, and health flags read directly from the battery management hardware. This is useful for confirming whether a phone is actually charging over a given cable and port combination, independent of what the on-screen battery icon claims — a genuinely useful check when diagnosing a suspect USB cable or port.
A related trick: dumpsys battery unplug forces the device to report as unplugged even while connected, which is handy for testing an app's behavior on battery power without physically disconnecting the charging cable.
adb shell dumpsys activity activities | grep mResumedActivity
Returns the package and activity name currently in the foreground. This is often faster than digging through a full UI hierarchy dump when you just need to confirm which screen of which app is actually on top, for instance when scripting a test that needs to wait until a specific screen has loaded.
adb shell dumpsys package com.example.app
Returns install path, version code and name, granted permissions, declared intent filters, and signing certificate details for a specific package. This is often more complete than pm list packages or pm dump alone, since it includes permission grant state per package, which is useful when debugging why a specific permission-gated feature isn't behaving as expected.
adb shell dumpsys meminfo com.example.app
Breaks down an app's memory footprint into Java heap, native heap, and graphics buffer allocations. This is a common first step when investigating whether an app's memory usage looks unusually high compared to a similar app, without needing Android Studio's full profiler attached.
adb shell dumpsys wifi
adb shell dumpsys connectivity
These report the current Wi-Fi connection's signal strength, negotiated link speed, and IP configuration, along with the broader connectivity manager's view of every active network transport (Wi-Fi, cellular, VPN) and which one is set as the default route. Useful when diagnosing why an app seems to be routing traffic over the wrong network interface.
dumpsys output for some services (activity and window especially) can run to thousands of lines. Redirect it to a file for easier searching rather than scrolling a terminal:
adb shell dumpsys activity > activity_dump.txt
Or pull the combined bug report, which bundles dumpsys output from every service along with logcat history and system logs into one archive:
adb bugreport bugreport.zip
A full bugreport is the more thorough option when you're not sure which specific service holds the information you need, at the cost of a much larger file to search through.
Because most dumpsys outputs are plain text, standard command-line text tools work directly on them. Piping through grep for a known keyword, or head/tail to check just the summary section many services print near the top or bottom of their report, is usually faster than reading the whole dump. The meminfo and battery commands in particular put their most relevant summary lines near the top of the output.
"Can't find service" error: the service name is case-sensitive and must match exactly what dumpsys -l lists; some OEM skins rename or remove specific services compared to stock Android.
Permission denied on certain services: a small number of dumpsys reports are restricted and return limited or no output without a debug build or elevated shell, though this affects only a handful of sensitive services, not the common ones covered above.