App Launch for Android
This page covers Instabug's app launch definition, apdex calculation, how to set your custom target, and all the details you need to know about the app launch metric on your Android apps.
Cold App Launch
Instabug automatically measures your cold app launch latency, which is the time between when your user launches the app from scratch and when it is responsive and accepting touch events.
It starts after Instabug's ContentProvider
is created and ends when onActivityResumed()
is called for the first time.
Disabling/Enabling App Launch Tracking
If APM is enabled, our SDK starts collecting data about your cold app launch time by default. If needed, you can always toggle this on and off by updating the relevant flag after the SDK is initialized:
APM.setColdAppLaunchEnabled(true)
APM.setColdAppLaunchEnabled(true);
Hot App Launch
The Instabug SDK automatically measures the hot app launch latency, which is the time between the user launching the app from the background until it's responsive and accepting touch events.
Hot Launch is transitioning the app from the background to the foreground-active state. We capture the Hot Launch event by monitoring the Application.ActivityLifecycleCallbacks
. It starts with onActivityStarted()
and ends with onActivityResumed()
.
Disabling/Enabling Hot App Launch Tracking
If APM is enabled, our SDK starts collecting data about your hot app launch time by default. If needed, you can always toggle this on and off by updating the relevant flag after the SDK is initialized:
APM.setHotAppLaunchEnabled(true)
APM.setHotAppLaunchEnabled(true);
Warm App Launch
The Instabug SDK automatically measures the warm app launch latency, which is somewhere between a cold and hot launch, where some of the operations that take place in a cold launch are still happening.
We capture the Warm Launch event by monitoring the Application.ActivityLifecycleCallbacks
. It starts with onActivityCreate()
and ends with onActivityResumed()
.
Disabling/Enabling Warm App Launch Tracking
If APM is enabled, our SDK starts collecting data about your warm app launch time by default. If needed, you can always toggle this on and off by updating the relevant flag after the SDK is initialized:
APM.setWarmAppLaunchEnabled(true)
APM.setWarmAppLaunchEnabled(true);
End App Launch
In the event that you'd like to define a specific point in time where the app launch can be considered complete, such as when the app is actually interactable, you can use the end app launch API to set that point. You'll then be able to see this data alongside the automatic cold and hot app launches that were captured.
To use the End App Launch API, you'll just need to call the following method:
APM.endAppLaunch()
APM.endAppLaunch();
App Launch Apdex
Instabug calculates an Apdex score for your app launch that reflects how satisfying your app launch time is. Your Apdex score ranges between 0 and 1; a higher value means better performance and, hence, a better user experience:
- Apdex score ≥ 0.94 equates to Excellent performance.
- Apdex score ≥ 0.85 and < 0.94 equates to Good performance.
- Apdex score ≥ 0.7 and < 0.85 equates to Fair performance.
- Apdex score ≥ 0.5 and < 0.7 equates to Poor performance.
- Apdex score < 0.5 is considered Unacceptable.
How Is the App Launch Apdex Calculated?
When an app launch occurrence is collected, it is flagged based on a pre-defined target (T). An app launch occurrence is considered:
- Satisfying: if its duration ≤ T
- Tolerable: if its duration > T and ≤ 4T
- Frustrating: if its duration > 4T
Then based on the bucketing explained above, the Apdex score is calculated as follows:
- Total occurrences = Satisfying occurrences + Tolerable occurrences + Frustrating occurrences
- Apdex score = (Satisfying occurrences + 0.5 * Tolerable occurrences) / Total occurrences
How Can You Control Your App Launch Target?
By default, the target is set to 0.5 seconds; however, you can easily change this number from your dashboard by clicking on the action highlighted in the screenshots below.
Please note that updating your app launch target does not affect the already stored occurrences, only future occurrences will be flagged using the new target.
Updated 6 months ago