Marathon Cloud vs Gradle Managed Devices
Gradle Managed Devices provisions Android emulators on the build machine, restores clean state with snapshots and can shard device profiles within that machine’s resources. Marathon Cloud provisions Android emulators and iOS simulators for each run, sizes the pool from suite history and retries failed tests on a different device.
| Gradle Managed Devices | Marathon Cloud | |
|---|---|---|
| Where tests run | Emulators provisioned and run by the Android Gradle plugin on the build machine (or on Firebase Test Lab through its Gradle plugin). | Android emulators and iOS simulators, provisioned fresh for every run. |
| Parallelism | Shards per device profile via android.experimental.androidTest.numManagedDeviceShards; total instances = devices × shards; docs warn provisioning can time out when the machine lacks resources. | Device pool sized from your suite's history, targeting 15 minutes per run. |
| Retries and reruns | Caches results and reruns only tests likely to produce a different result. | Failed tests rerun on a different device; tests with a flaky history are retried preventively. |
| Clean state | Emulator snapshots restore a clean state between tests. | Fresh emulator or simulator per run; batching with isolation option. |
| Platforms | Android only. | Android and iOS. |
| Price | Free; you pay for the CI machine minutes it runs on. | $2 per hour per Android device, $3 per hour per iOS device, billed per second. 50 free device hours to start. |
| CI without GPU | Needs -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect on runners such as GitHub Actions. | GitHub Action, Bitrise step and Docker image; runs from any CI or your laptop. |
| Getting started | Free; runs on your CI machine. | Self-serve: sign up, 50 free device hours, no credit card, one CLI command. No parallel count to buy — the pool is sized per run. |
Competitor facts verified 2026-09-29 from the vendor's public pages.
A Gradle Managed Devices alternative when one CI machine is no longer enough
Gradle Managed Devices provisions Android emulators and shards on the build machine, with provisioning bounded by that machine’s resources. Marathon Cloud provisions Android emulators and iOS simulators per run and sizes the device pool from suite history to target 15 minutes.
Choose Gradle Managed Devices when
- Your suite fits comfortably on one CI machine and you only ship Android.
- You want zero external services in the build.
Choose Marathon Cloud when
- Shards on one machine hit the provisioning timeout or the machine's core count.
- You also run XCUITest or Maestro on iOS.
What a run costs on Marathon Cloud
A suite with 120 minutes of total test time runs on 8 devices for about 15 minutes: 2 device-hours, $4.00 on Android or $6.00 on iOS.