WARNING: IntelliJ changes their startup lifecycle often as they try to fix performance issues. Many APIs are marked “internal”, so they could change anytime. The following information is current as of AS 2022.1 (Electric Eel).
ApplicationLoadListener.beforeApplicationLoaded
AndroidPluginInitializer
is invoked to initialize analytics & studio progress manager (which should be moved further down)ApplicationService
with preload=true
(not guaranteed), or preload=await
preload
attribute is set in the service registration.preload=await
implies that the startup will wait for this service to be initialized before moving to the next phase in startup.preload=true
implies that the startup sequence will not wait for the service to be initialized, but these may not be initialized at all in some modes of the IDE (such as LIGHT_MODE).ApplicationComponent
constructors are calledAndroidInitialConfigurator
is run at this time.AndroidInitialConfigurator
also executes all Runnables that extend androidStudioInitializer
:AndroidSdkInitializer
SystemInfoStatsMonitor
is started hereApplicationInitializedListener.componentsInitialized
LowMemoryReporter$OnStartup
ThreadingChecker
DisableGradleProjectOpenProcessor
used to unregister the platform's GradleProjectOpenProcessor
AndroidStudioInitializer
PreloadingActivity.preload
ActionConfigurationCustomizer.customize
ActionManager.<init>
, which runs sometime during app startup upon first accessAndroidStudioActionCustomizer
AndroidPlugin$ActionCustomizer
NewProjectActionsInitializer
GradleSpecificActionCustomizer
GradleSpecificInitializer
(TODO: this should not be a ActionConfigurationCustomizer
)AdtImportInitializer
PsdActionsInitializer
ProjectLifecycleListener.beforeProjectLoaded
ProjectManagerListener.projectOpened
is invoked hereProjectLifecycleListener.projectComponentsInitialized
AppLifecycleListener.appStarted
The following extensions are safe to use, whereas the ones above should be used with caution and perhaps a review with someone from the platform team.
StartupActivity.DumbAware.runActivity
StartupActivity.Background.runActivity
StartupActivity.runActivity