Artifact gate before UI and device-cloud testing

APK path in.
Launch receipt out.

RustDroid boots or reuses an emulator, installs your Android artifact, observes its launch, and leaves evidence you can inspect locally or upload to CI. No test script. No APK upload to a RustDroid service.

  • Host emulator fast path
  • APK · split APK · .apks · .xapk
  • JSON · HTML · JUnit receipts
host-fast / public Gradle fixture 2026-09-01
rustdroid --profile host-fast run
tests/fixtures/apks/launch-success.apk

PRE-FLIGHTAPK digest recordedAPI 35 readyartifacts enabled

01 / boot 6.795 s host AVD ready
02 / install 3.431 s APK installed
03 / launch 3.517 s activity observed
04 / result Passed 15.746 s total
Source workflow and uploaded artifact

Made for the step before a device cloud.

HOSTDOCKERCILOCAL-FIRST

One useful answer, not another dashboard

Where did the APK loop break?

RustDroid makes the daily device hand-off explicit: inspect the input, prepare the runtime, install, launch, then keep the facts.

  1. 01

    Inspect

    Resolve package, activity, ABI, split sets, and archives before the emulator costs you time.

  2. 02

    Prepare

    Boot or reuse an AVD on the host fast path. Use Docker when containment matters more.

  3. 03

    Launch

    Install the APK, resolve the launch activity, and observe the app in the foreground.

  4. 04

    Keep proof

    Write logs and a portable receipt instead of asking a teammate to reproduce a green check.

A RustDroid host-fixture run receipt showing preflight, boot, install, launch, and evidence artifacts.

Reference cold host-fixture diagram. For current raw evidence, inspect the September 1 Gradle receipt and its public workflow.

A four-step RustDroid terminal walkthrough: doctor, fixture run, launch verification, and receipt artifacts. Play the readable eight-second walkthrough

A receipt is more useful than a pass/fail dot

Useful to humans.
Stable for machines.

A completed run can leave a versioned JSON receipt, a reviewable HTML report, JUnit for CI, Markdown, and logcat evidence. Failures retain the stage that failed: emulator, ADB, install, launch, or capture.

run-summary.json
automation and dashboards
run-report.html
quick human review
junit.xml
CI-native failure signal
logcat.txt
launch and crash context

No private application required

Try a real, checked-in fixture first.

Clone the repository, then use the signed launch fixture to validate your Linux host, Android SDK, AVD, and receipt path before connecting a private app.

fixture / launch-success.apk
$ git clone --depth 1 https://github.com/OthmaneBlial/rustdroid.git
$ cd rustdroid
$ rustdroid \
  --profile host-fast \
  --host-avd-name test_avd \
  run tests/fixtures/apks/launch-success.apk \
  --duration-secs 2 --keep-alive false \
  --artifacts-dir artifacts/rustdroid-demo
EXPECTED RESULTlaunch verified + receipt artifactsSee the documented walkthrough

Bring the build tool you already use

One receipt contract. Three public sources.

The local APK loop, with a paper trail

Stop guessing whether it launched.

Download RustDroid Read the Linux quickstart