Android in-app inspector library

Inspect your Android app from inside the app.

AppInspect is a drop-in Android library that opens a full-screen inspector inside your app. Review network traffic, local storage, background jobs, crashes and ANRs, and runtime metadata from the exact build being tested — while the no-op artifact keeps inspection code completely out of your production APK.

Built for Android development and QA
Published on Maven Central 100% on-device, zero telemetry No-op safe for release builds
Who it is for

A practical debugging surface for real Android teams.

Use AppInspect when a bug report needs more than screenshots and logs. Developers reproduce faster, QA attaches real evidence, and companies standardize internal diagnostics across Android apps.

Developers and QA engineers

Faster debugging from the exact build being tested.

  • Inspect OkHttp calls with filters, content search, payload previews, and one-tap cURL or HAR export.
  • Attach crash, ANR, and native-crash evidence captured automatically — persisted across app restarts.
  • Validate SharedPreferences, DataStore, SQLite, and WorkManager state with search across every panel.
  • Open through shake, launcher shortcut, long press, notification tap, or AppInspect.open(context).
Companies and private app teams

A reusable library instead of a one-off internal screen.

  • Give teams the same inspector experience across apps and environments.
  • Adopt from Maven Central with normal Gradle dependency management.
  • Configure entry points, panels, raw-value visibility, and editing tools per rollout.
  • Ship release builds with confidence: compile-time no-op plus a runtime gate that self-disables the library in production.
Inspector tools

Six inspection areas in one Android library.

AppInspect is built around the views developers and testers reach for first: API calls, on-device data, background work, crashes and ANRs, runtime context, and simple ways to open the inspector.

N

Network

OkHttp capture with filters, content search, and swipeable detail tabs. Long-press to multi-select calls and share them — or the whole filtered list — as cURL, TXT, or HAR 1.2.

S

Storage

Edit SharedPreferences (with read-only decrypted views of EncryptedSharedPreferences), browse SQLite or Room with a SQL console, and read DataStore Preferences via a built-in protobuf parser — with search across files, keys, and values.

W

WorkManager

Every persisted work spec with status badges, constraints, attempts, payloads, last stop reason, and periodic or expedited indicators — searchable by class, ID, state, or tag.

C

Crashes & ANRs

Automatic uncaught-exception capture plus ANR and native crash detection on Android 11+. The 50 most recent reports persist across restarts, with copy, share, and TXT export.

R

Runtime

App, environment, device, and session metadata with custom data sections — tap any row to copy its value, or share the full runtime summary.

U

Inspector UI

Built-in full-screen inspector opened by direct call, shake, launcher shortcut, long press, or tapping a live network notification — opens in its own task, with panels and tabs you swipe between, plus a shared JSON tree viewer with search for any large value.

Quick start

Two Gradle lines and you're running.

Add the full inspector for debug builds and the no-op stub for release. AppInspect auto-initializes — no Application class changes needed.

build.gradle.kts
dependencies {
    debugImplementation("io.github.suryansh1720001.appinspect:appinspect:<latest-version>")
    releaseImplementation("io.github.suryansh1720001.appinspect:appinspect-no-op:<latest-version>")
}
FAQ

Common questions about AppInspect.

Is AppInspect free?

Yes. AppInspect is completely free — no paid tier, no license fee, no usage limits. It is published on Maven Central at no cost.

Does AppInspect add any code to my release APK?

No. You use the appinspect-no-op artifact for release builds. It is a pass-through stub with no UI, no storage, no network capture, and no crash handler — inspection code is completely absent from the release APK.

What can AppInspect inspect?

Network requests and responses via OkHttp (exportable as .har or .txt with cURL commands), SharedPreferences, DataStore, SQLite and Room databases, WorkManager job queues, uncaught exceptions, ANRs, native crashes (Android 11+), and full runtime and device metadata.

Does AppInspect require root access?

No. AppInspect works on any unrooted Android device running API 24 (Android 7.0) or higher. No special permissions or developer mode are needed beyond what a normal debug build already has.

Is my app's data safe in release builds?

Yes — two independent layers protect you. Layer 1 (compile-time): the no-op artifact contains no inspection code, so nothing is added to the release APK. Layer 2 (runtime): even if the full SDK accidentally ships in a release build, it detects the non-debuggable flag and self-disables completely — no database, no crash handler, no callbacks, all open() calls refused.

Does AppInspect collect or send any data outside the device?

No. AppInspect never makes network calls of its own. Zero telemetry. All captured data — network logs, storage values, crash traces — stays entirely on-device. Nothing is sent to any server.

How is AppInspect different from Charles Proxy or Flipper?

AppInspect runs entirely on-device inside the app — no desktop proxy, no SSL certificate installation, no Wi-Fi MITM setup, no USB cable. QA testers can open the inspector directly on their device via shake, launcher shortcut, or long-press, without involving a developer or any external tool.

What Android versions does AppInspect support?

Android API 24 (Android 7.0) and above. ANR detection and native crash detection require Android API 30 (Android 11+).

Can QA testers use AppInspect without developer help?

Yes. Once the library is integrated, testers open the inspector on their own device at any time — via shake gesture, launcher shortcut, or long-press trigger. No Android Studio, adb, or USB cable needed during testing.

How do I integrate AppInspect into my Android project?

Add two Gradle lines: debugImplementation for the full SDK and releaseImplementation for the no-op stub. AppInspect auto-initializes via AndroidX Startup — no Application class changes needed for basic usage. For network capture, add .addAppInspectInterceptor() to your OkHttpClient builder.

Can I export data captured by AppInspect?

Yes. Network logs export as .txt (with cURL commands) or .har in HAR 1.2 format, compatible with browser DevTools and Proxyman. Long-press to select specific calls and share just those, or export the whole filtered list. Storage contents and runtime summaries can be shared via the Android share sheet.

Ready to try

Add AppInspect to your Android app from Maven Central.

Start with the debug dependency, wire the OkHttp interceptor if you want network capture, and tune the panels and power tools for your team's workflow.

Maintainer

Built and maintained by Suryansh Prajapati.

AppInspect is published for Android teams that want practical internal debugging without building their own inspector surface from scratch.

Support the developer

AppInspect is free. If it saved you time, support the work.

AppInspect is free to use. Contributions help keep the project maintained, documented, and improving for Android developers and QA teams.

  • Free library with no subscription gate
  • Focused updates, docs, and release quality work