Name Description Size Coverage
AppStartReasonProvider.kt Provides the reason this [Application] instance was started: see [StartReason] for options and [reason] for details. This class relies on specific lifecycle method call orders and main thread Runnable scheduling that could potentially change between OEMs and OS versions: **be careful when using it.** This implementation was tested on the Moto G5 Android 8.1.0 and the Pixel 2 Android 11. 4400 -
DefaultActivityLifecycleCallbacks.kt An inheritance of [Application.ActivityLifecycleCallbacks] where each method has a default implementation that does nothing. This allows classes that extend this interface to have more concise definitions if they don't implement some methods; this is in the spirit of other `Default*` classes, such as [androidx.lifecycle.DefaultLifecycleObserver]. 1253 -
StartupActivityLog.kt A record of the [Activity] created, started, and stopped events as well as [Application] foreground and background events. See [log] for the log. This class is expected to be registered in [Application.onCreate] by calling [registerInAppOnCreate]. To prevent this list from growing infinitely, we clear the list when the application is stopped. This is acceptable from the current requirements: we never need to inspect more than the current start up. 4258 -
StartupPathProvider.kt This should be a member variable of [Activity] because its data is tied to the lifecycle of an Activity. Call [attachOnActivityOnCreate] & [onIntentReceived] for this class to work correctly. 4203 -
StartupStateProvider.kt Identifies the "state" of start up where state can be COLD/WARM/HOT and possibly others. This class is nuanced: **please read the kdoc carefully before using it.** Consider contacting the perf team with your use case. For this class, we use the terminology from the [StartupActivityLog] such as STARTED and STOPPED. However, we're assuming STARTED means foregrounded and STOPPED means backgrounded. If this assumption is false, the logic in this class may be incorrect. 6296 -
StartupTypeTelemetry.kt Records telemetry for the number of start ups. See the [Fenix perf glossary](https://wiki.mozilla.org/index.php?title=Performance/Fenix/Glossary) for specific definitions. This should be a member variable of [MainActivity] because its data is tied to the lifecycle of an Activity. Call [attachOnMainActivityOnCreate] for this class to work correctly. N.B.: this class is lightly hardcoded to MainActivity. 4389 -