| <!-- |
| * |
| * Copyright (C) 2013 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| --> |
| <idea-plugin> |
| <extensions defaultExtensionNs="com.intellij"> |
| <registryKey key="ide.slow.operations.assertion.generic" defaultValue="false" description="Flag for generic activities and code in `SlowOperations#allowSlowOperations`"/> |
| <applicationInitializedListener id="Startup.AndroidStudioInitializer" implementation="com.android.tools.idea.startup.AndroidStudioInitializer" /> |
| <actionConfigurationCustomizer id="Startup.AndroidStudioActionCustomizer" implementation="com.android.tools.idea.startup.AndroidStudioActionCustomizer"/> |
| <applicationInitializedListener implementation="com.android.tools.idea.instrumentation.threading.ThreadingChecker" /> |
| <applicationService serviceInterface="com.intellij.platform.ide.customization.ExternalProductResourceUrls" |
| serviceImplementation="com.android.tools.idea.AndroidStudioResourceUrls" |
| overrides="true"/> |
| |
| <applicationService serviceInterface="com.intellij.openapi.updateSettings.UpdateStrategyCustomization" |
| serviceImplementation="com.android.tools.idea.AndroidStudioUpdateStrategyCustomization" |
| overrides="true"/> |
| |
| <!--suppress PluginXmlValidity (this service is intentionally registered outside the module of the interface class) --> |
| <applicationService serviceInterface="com.intellij.analytics.AndroidStudioAnalytics" |
| serviceImplementation="com.android.tools.idea.startup.AndroidStudioAnalyticsImpl"/> |
| |
| <!--suppress PluginXmlValidity (this service is intentionally registered outside the module of the interface class) --> |
| <applicationService serviceInterface="com.intellij.ide.AndroidStudioSystemHealthMonitorAdapter$EventsListener" |
| serviceImplementation="com.android.tools.idea.diagnostics.AndroidStudioSystemHealthMonitor$MyEventsListener"/> |
| |
| <!-- overrides UTM-tracking implementation included from JavaIdePlugin.xml: --> |
| <applicationService serviceImplementation="com.intellij.openapi.application.IdeUrlTrackingParametersProvider" |
| overrides="true"/> |
| |
| <!-- Disable JetBrains feedback surveys (b/402895189). Tested by AndroidStudioJetBrainsSurveysTest. --> |
| <registryKey overrides="true" key="platform.feedback" defaultValue="false" description="Enables JetBrains feedback surveys"/> |
| |
| <!-- TODO(b/416578927): remove this override for ide.workspace.model.sdk.remove.custom.processing --> |
| <registryKey overrides="true" key="ide.workspace.model.sdk.remove.custom.processing" defaultValue="false" restartRequired="true" |
| description="Removes custom processing of Global Libraries and SDKs in the Workspace Model"/> |
| |
| <!-- This registry flag changed upstream in 2025.1 causing the platform to think JCef is supported in Android Studio. b/416777166 --> |
| <registryKey key="ide.browser.jcef.out-of-process.enabled" overrides="true" defaultValue="false" description="Enable JCEF is a separate process"/> |
| |
| <welcomeScreen implementation="com.android.tools.idea.welcome.wizard.AndroidStudioWelcomeScreenProvider"/> |
| |
| <codeStyleSettingsProvider implementation="org.jetbrains.android.formatter.AndroidStudioCodeStyleSettingsProvider" order="last"/> |
| |
| <errorHandler implementation="com.android.tools.idea.diagnostics.error.AndroidStudioErrorReportSubmitter"/> |
| <applicationInitializedListener id="Startup.StartLowMemoryReporter" |
| implementation="com.android.tools.idea.stats.LowMemoryReporter$OnStartup"/> |
| <postStartupActivity implementation="com.android.tools.idea.stats.GcPauseWatcher" /> |
| <postStartupActivity implementation="com.android.tools.idea.serverflags.ServerFlagDownloader$Initializer" /> |
| <postStartupActivity implementation="com.android.tools.idea.diagnostics.WindowsCRuntimeChecker" os="windows" /> |
| <postStartupActivity implementation="com.android.tools.idea.diagnostics.DiagnosticsReportCleaner" /> |
| <defender.config implementation="com.android.tools.idea.diagnostics.windows.AndroidWindowsDefenderCheckerExt"/> |
| <defaultToolWindowLayout |
| id="AndroidStudioDefaultToolWindowLayoutExtension" |
| implementation="com.android.tools.idea.AndroidStudioDefaultToolWindowLayoutExtension" |
| order="last" |
| /> |
| <applicationService serviceInterface="com.intellij.diagnostic.LowMemoryNotifier" preload="true" overrides="true" |
| serviceImplementation="com.android.tools.idea.memorysettings.AndroidLowMemoryNotifier"/> |
| <execution.applicationRunLineMarkerHider implementation="com.android.tools.idea.run.AndroidRunMarkerHider"/> |
| <postStartupActivity implementation="com.android.tools.idea.project.LibraryToolWindowInitializer"/> |
| <postStartupActivity implementation="com.android.tools.idea.gservices.StudioDeprecationChecker$Initializer" /> |
| <notificationGroup displayType="STICKY_BALLOON" id="StudioDeprecationNotification" /> |
| </extensions> |
| |
| <applicationListeners> |
| <listener |
| class="com.android.tools.idea.diagnostics.LastActionTracker$MyActionListener" |
| topic="com.intellij.openapi.actionSystem.ex.AnActionListener" /> |
| </applicationListeners> |
| |
| <actions> |
| <action id="HelpTopics" class="com.android.tools.idea.actions.MeetAndroidStudioHelpAction" overrides="true" |
| icon="AllIcons.Actions.Help" text="Android Studio Help" description="Help"/> |
| <reference ref="AndroidToolsGroup"> |
| <add-to-group group-id="ToolsMenu" anchor="first"/> |
| </reference> |
| |
| <action class="com.intellij.ide.actions.HelpTopicsAction" id="IntelliJ.HelpTopics" text="IntelliJ IDEA Help"> |
| <add-to-group group-id="HelpMenu" anchor="after" relative-to-action="HelpTopics" /> |
| </action> |
| |
| <action class="com.android.tools.idea.actions.license.ShowLicensesUsedAction" id="Android.ShowLicenses"> |
| <add-to-group group-id="HelpMenu" anchor="before" relative-to-action="Help.KeymapReference" /> |
| </action> |
| |
| <action class="com.android.tools.idea.diagnostics.hprof.action.UserInvokedHeapDumpSnapshotAction" id="UserInvokedHeapDumpSnapshot" |
| text="Analyze Memory Usage"> |
| <add-to-group group-id="HelpMenu" anchor="after" relative-to-action="CollectZippedLogs" /> |
| </action> |
| |
| <action class="com.android.tools.idea.diagnostics.hprof.action.InternalUserInvokedFullAnalysisAction" id="UserInvokedFullAnalysis" |
| text="Create And Immediately Analyze Heap Dump" internal="true"> |
| <add-to-group group-id="Internal.HeapAnalysis"/> |
| </action> |
| |
| <group id="Internal.Android.FreezeTools" popup="true" internal="true" text="Freeze"> |
| <action class="com.android.tools.idea.diagnostics.freeze.DeadlockUIThreadWithLocks" id="DeadlockUIThread" |
| text="Create UI thread deadlock with Locks" internal="true"/> |
| |
| <action class="com.android.tools.idea.diagnostics.freeze.DeadlockUIThreadWithLocksTimeout" id="DeadlockUIThreadWithTimeout" |
| text="Create UI thread deadlock with Locks (10s timeout)" internal="true"/> |
| |
| <action class="com.android.tools.idea.diagnostics.freeze.DeadlockUIThreadWithSynchronized" id="DeadlockUIThreadWithSynchronized" |
| text="Create UI thread deadlock with Synchronized" internal="true"/> |
| |
| <action class="com.android.tools.idea.diagnostics.freeze.DeadlockUIThreadWithReadAction" id="DeadlockUIThreadWithReadAction" |
| text="Create UI thread deadlock with Read action" internal="true"/> |
| <add-to-group group-id="Internal.Android"/> |
| </group> |
| |
| <action class="com.android.tools.idea.diagnostics.hprof.action.InternalNonuserInvokedHeapDumpSnapshotAction" id="SilentHeapDumpSnapshot" |
| text="Create And Schedule Heap Dump Analysis (Non-user invoked)" internal="true"> |
| <add-to-group group-id="Internal.HeapAnalysis"/> |
| </action> |
| |
| <action class="com.android.tools.idea.diagnostics.heap.CollectMemoryUsageStatisticsAction" id="CollectMemoryUsageStatistics" |
| text="Collect Studio Components Memory Usage Statistics" internal="true"> |
| <add-to-group group-id="Internal.HeapAnalysis"/> |
| </action> |
| |
| <group id="Internal.JavaFlightRecorder" text="Java Flight Recorder" popup="true" internal="true"> |
| <add-to-group group-id="Internal" anchor="after" relative-to-action="Internal.HeapAnalysis"/> |
| </group> |
| <action class="com.android.tools.idea.diagnostics.jfr.FreezeUiAction" id="FreezeUI" |
| text="Freeze UI" internal="true"> |
| <add-to-group group-id="Internal.JavaFlightRecorder" anchor="first"/> |
| </action> |
| <action class="com.android.tools.idea.diagnostics.jfr.RecordingManager$DumpJfrAction" id="DumpJFR" |
| text="Dump JFR Recording" internal="true"> |
| <add-to-group group-id="Internal.JavaFlightRecorder" anchor="after" relative-to-action="FreezeUI"/> |
| </action> |
| |
| <group id="Android.NavBarToolBar"> |
| <reference ref="AndroidDeviceManagerPlaceholder" /> |
| <separator/> |
| <add-to-group group-id="NavBarToolBar" anchor="before" relative-to-action="SearchEverywhere" /> |
| </group> |
| |
| <group id="Android.MainToolbarRight" > |
| <reference ref="Android.InstantRunActions" /> |
| <reference ref="AndroidConnectDebuggerAction" /> |
| |
| <add-to-group group-id="MainToolbarRight" anchor="before" relative-to-action="SearchEverywhere" /> |
| </group> |
| |
| <action id="WelcomeScreen.AndroidStudio.apkProfilingAndDebugging" |
| class="com.android.tools.idea.apk.ImportApkAction"> |
| <add-to-group group-id="WelcomeScreen.QuickStart"/> |
| </action> |
| |
| <action id="ImportApkAction" |
| class="com.android.tools.idea.apk.ImportApkAction" text="Profile or Debug APK..."> |
| <add-to-group group-id="FileOpenGroup" relative-to-action="OpenFile" anchor="after"/> |
| </action> |
| |
| <group id="ImportTests" |
| class="com.android.tools.idea.testartifacts.instrumented.testsuite.actions.ImportTestGroup" |
| icon="AllIcons.Vcs.History" |
| overrides="true"/> |
| <action id="ImportTestsFromFile" |
| class="com.android.tools.idea.testartifacts.instrumented.testsuite.actions.ImportTestsFromFileAction" |
| icon="AllIcons.ToolbarDecorator.Import" |
| overrides="true"/> |
| <action |
| id="ReportProblem" |
| class="com.android.tools.idea.actions.SubmitBugReportAction" |
| overrides="true"/> |
| <action |
| id="CollectZippedLogs" |
| class="com.android.tools.idea.actions.CreateDiagnosticReportAction" |
| overrides="true" |
| text="Collect Logs and Diagnostic Data" |
| description="Collect logs and diagnostic data"/> |
| <action |
| id="ResetUserIdAction" |
| class="com.android.tools.idea.actions.ResetUserIdAction" |
| text="Reset Data Sharing User Identifier" |
| description="Reset Data Sharing User Identifier"/> |
| </actions> |
| |
| <extensions defaultExtensionNs="com.intellij"> |
| <defaultProjectTypeProvider type="Android"/> |
| <targetElementEvaluator language="XML" implementationClass="org.jetbrains.android.dom.AndroidXmlTargetElementEvaluatorEx" order="first"/> |
| |
| <!-- Unregister DefaultJdkConfigurator b/112481251 --> |
| <applicationService serviceInterface="com.intellij.openapi.projectRoots.DefaultJdkConfigurator" |
| serviceImplementation="com.android.tools.idea.sdk.StudioJdkConfigurator" |
| overrides="true" |
| headlessImplementation="com.android.tools.idea.sdk.StudioJdkConfigurator" |
| /> |
| <applicationService serviceInterface="com.intellij.diagnostic.EventWatcher" |
| serviceImplementation="com.android.tools.idea.diagnostics.typing.TypingEventWatcher" headlessImplementation="" |
| preload="notHeadless" |
| overrides="true"/> |
| |
| <welcomeFrameProvider implementation="com.android.tools.idea.welcome.wizard.FirstRunWizardFrameProvider" order="FIRST"/> |
| |
| <localInspection groupPath="Java" language="JAVA" suppressId="deprecation" shortName="Deprecation" displayName="Deprecated API usage" |
| groupKey="group.names.code.maturity.issues" groupBundle="messages.InspectionsBundle" |
| enabledByDefault="true" level="WARNING" |
| implementationClass="org.jetbrains.android.inspections.AndroidDeprecationInspection"/> |
| |
| <applicationConfigurable parentId="preferences.general" |
| displayName="Memory Settings" |
| provider="com.android.tools.idea.memorysettings.MemorySettingsConfigurableProvider" |
| id="memory.settings"/> |
| |
| <statistic.eventLog.eventLoggerProvider implementation="com.android.tools.idea.stats.AndroidStudioStatisticsEventLoggerProvider"/> |
| <projectService serviceInterface="com.intellij.codeInsight.NullableNotNullManager" |
| serviceImplementation="com.android.tools.idea.lang.AndroidNullableNotNullManagerImpl" |
| overrides="true" |
| /> |
| |
| <postStartupActivity implementation="com.android.tools.idea.startup.ProjectMetricsInitializer$MyStartupActivity"/> |
| <postStartupActivity implementation="com.android.tools.idea.diagnostics.commit.GitCommitTrackerActivity"/> |
| </extensions> |
| |
| <applicationListeners> |
| <listener class="com.android.tools.idea.startup.ProjectMetricsInitializer" |
| topic="com.intellij.openapi.project.ProjectCloseListener"/> |
| <listener class="com.android.tools.idea.stats.AndroidStudioUsageTracker$UsageTrackerAppLifecycleListener" |
| topic="com.intellij.ide.AppLifecycleListener"/> |
| </applicationListeners> |
| <projectListeners> |
| <listener class="com.android.tools.idea.navigator.ProjectViewListener" |
| activeInHeadlessMode="false" |
| activeInTestMode="false" |
| topic="com.intellij.openapi.wm.ex.ToolWindowManagerListener"/> |
| </projectListeners> |
| </idea-plugin> |