Startup Performance Analysis (Android)

Emerge's Android startup testing launches your app on real, physical devices using Emerge's testing suite, allowing you to detect cold startup performance changes between any two builds.

Startup test lifecycle

  1. Emerge installs the base app on the device.
  2. Emerge runs any setup/login logic for the app.
  3. Emerge runs the first iteration of cold startup and records all network requests. The duration of this setup test is not recorded.
  4. Many iterations are run, recording the duration of each startup.
  5. Repeat steps 1-4 for the head app.


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

We can enable startup performance testing on any upload to Emerge, get in touch with our team to enable it for your uploads!

Marking custom startup 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 been completed.

Let the Emerge team know if you'd like to use reportFullyDrawn as your primary measure.

Custom startup scenarios

Emerge supports any custom startup scenario (i.e. logged in, deeplink, etc), leveraging Custom Flow Performance Analysis (Android).

We're currently onboarding teams manually to custom startup scenarios, let the Emerge team know or email us to try it out!