Skip to content

Capture workflow

Each selected capture can run across a declared set of locales, themes, and navigation modes. AASG invokes instrumentation once per combination so app-owned tests see one unambiguous requested state at a time.

Use --all to select every capture, --locale all, --theme all, and --navigation all to expand variants. --navigation applies only to captures configured with navigation: all.

Terminal window
aasg capture --all --locale all --theme all --navigation all \
--device emulator-5554 --non-interactive

The normal execution path delegates to the configured Gradle test task and reads its AndroidX Test Storage additional-output directory. A direct-instrumentation option is available for Android/AGP user-selection incompatibilities: AASG still builds both APKs with prepare_tasks, resolves the numeric Android user, then launches am instrument --user and pulls the declared Test Storage directory.

A variant is collected and rendered in a run staging directory. AASG validates media, semantic metadata, and output paths, hashes the artifact, then atomically updates the stable path. Failed or interrupted variants leave any earlier valid stable output in place.

Each real run writes a versioned manifest and redacted logs under project.run_log_root. The manifest records the configuration, selection, device model/API, setting changes, checksums, renderer commands, and frame provenance.

Interactive runs remember the last successful capture, locale, theme, and navigation selections outside the project. Without --device, AASG uses the sole online ADB-authorized device or emulator, or lists the online devices for an interactive choice. With multiple online devices, automation must pass --device alongside --non-interactive. Use --dry-run before a large matrix to inspect it without calling Android tooling.