Android Performance Testing

Android performance testing launches your APK or AAB on real, physical devices using Emerge's testing suite, allowing you to detect cold startup performance regressions for any PR before it's merged.

How it works

Each time a new build of your Android app is uploaded to Emerge, it's run on a real, physical device in the cloud, along with the version it's being compared against (the app referenced from the specified baseSha).

Your app and the comparison app are launched numerous times on the same device in a randomized order, clearing the app and killing the process in between runs to preserve a consistent, cold-start state. While running each iteration, we record various performance metrics in addition to every function call in your startup path.


No developer setup is required!

Emerge records startup times by default from the start of your app's process to the end of the first frame rendering. This is referred to as time to initial display in the official Android documentation and is Emerge's default startup time metric.

We can enable startup regression testing on any upload to Emerge, get in touch with our team to try it out!

Marking custom end times

While the first frame (time to initial display) is the standard metric for default cold start time, Emerge can also record and catch regressions in time to full display, to a custom end time using reportFullyDrawn.

Place a call to this anywhere in your startup path once your application has finished fully loading. This will usually be called from your main activity, once all layout & rendering logic has completed.

Custom setup scenarios & custom flows

Interested in performance testing custom scenarios such as logged-in/out or any custom flow? We're actively onboarding key partners. Get in touch with our team!