Native Android visual test
Interactive, on-device verification of a native Android app (Kotlin/Java,
Jetpack Compose or classic Views) — the "did my last change actually render
correctly" check. Installs the app via Gradle, launches the activity, captures
real screenshots via adb, reads logcat, and gives a concrete verdict.
When to use
- "Test the app / run it on the emulator / see the visual changes."
- "Did my Compose/layout fix work? Does this screen render correctly now?"
- "Compare this screen to the Figma design." (optional Figma add-on)
- Any request for empirical, on-device confirmation of a visual or runtime change — even without the words "screenshot" or "logs".
How it works
- Follow
references/capture-loop.md— the universal procedure: preflight, launch in the background, wait for the first real frame, screenshot, capture logs, analyze the PNG against the change, report a verdict. - For the native-Android specifics — the Gradle
installDebugtask and how to pick a build variant/flavor, launching the activity witham start/monkey, finding theapplicationId, the "activity displayed" signal, and logcat scoped to the app's pid — readreferences/native-android.md. - To navigate the UI before screenshotting, see
references/driving-the-ui.md. - When something looks off, see
references/troubleshooting.md. - (Optional) compare to a Figma design →
references/figma-comparison.md(requires the Figma MCP server; skip entirely if you don't use Figma). - App built with a cross-platform framework instead? See
references/other-frameworks.mdor use the matching skill.
Bundled scripts
scripts/check-devices.sh, launch.sh, snap.sh, capture-logs.sh,
stop.sh wrap the common adb/Gradle commands with device disambiguation.
capture-loop.md shows how they fit together. Note that a native Gradle install
does not launch the app — see the framework reference for the am start step.