Startup Performance Analysis (Android)

General concepts

Emerge's performance analysis focuses on catching performance differences between app builds. To do so, Emerge controls many sources of noise and variance on the real, physical device we test on to ensure any performance difference between the two comparison builds stems from the app builds alone.

Cold startup testing

No developer setup is needed for Emerge's startup performance analysis.

Emerge supports startup performance analysis for AABs and APKs, but highly recommends using AABs as APKs can have more variable performance compared to AABs.

Startup test lifecycle

3704

Lifecycle of an Emerge Android startup test. Emerge records disk state from the base app, and records network traffic from both base & head to ensure consistency across future iterations.

Measurements

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.

Running startup comparisons

Contact the Emerge team through Slack or email us to enable startup comparisons for your organization.

If your team has enabled startup comparisons, you can run any comparison between two builds using the compare page.

Contact the Emerge team to enable startup comparisons in CI. As part of running in CI or using the compare page, Emerge is also able to login to test accounts or setup the app as needed.

Custom startup scenarios

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

Should your team need more custom startup scenario support (i.e. custom measurements or custom intent/argument support), let the Emerge team know or email us!