Android – Difference between Android Studio and Intellij Idea with plugins

androidandroid-studiointellij-idea

We have an existing java code base where we use intellij idea for development.

We are building an android application where we will be sharing code and other resources with the pre-existing code and resource base.

As Android Studio seems mainly to be a modified version of Intellij my question is are there totally specific features Android Studio has that are indispensable? Incompatible? "Standard"? vs Intellij Idea community or ultimate? Are the two interchangeable with a proper plugin set?

If we were to use Intellij Idea with the various Android support plugins, are these plugins the same as what comes with android studio? With this set of plugins will the programs virtually interchangeable?

(I did notice "ant" support is not in Android Studio. though all I need is some ability to invoke executables from the IDE with a set of menu configurable entries for various commands – I now use the intellij ant support to do this because it was available)

Will Intellij always be lagging releases being Android Studio as it is Google's "Official" Tool.

If they are significantly incompatible, what is the easiest way to use common resources and tools between the two systems?

Best Answer

Updated Answer November 2019

In the past, there was no functionality in Android Studio that was not present in IntelliJ IDEA with the Android plugin installed. However, since its inception, Android Studio has grown and has diverged more and more from IntelliJ IDEA, especially recently. There are now some plugins bundled in Android Studio that are not compatible with IntelliJ IDEA. One such example is the Android APK Support which was first released in June 2019. Moreover, there are some Android based plugins bundled with Android Studio that are not even listed on the JetBrains Plugin site (at this time) such as "Android Games", "Android NDK Support", "App Links Assistant", among others.

Thus at this time, it is likely best to use Android Studio for Android Projects, and use IntelliJ IDEA for any ancillary development, such as server side applications.

How to use both easily

The JetBrains Toolbox App makes it easy to install and use the two IDEs side by side. It also makes upgrading (and rolling back if ever desired) super easy as well. The toolbox did not support Android Studio when it first came out years ago. And thus picking one or the other was more of an "issue". Additionally, by using the Settings Repository Plugin (bundled in both IDEs) you can easily keep settings between the two IntelliJ Platform IDEs in sync. (See Share settings through a settings repository in the IntelliJ IDEA documentation.) Thus, between the Toolbox App and The Settings Repository Plugin, it's convenient (IMHO) to just use both.


Previous (Outdated) Answer Form June 2015

First, a disclaimer... I have only lightly used Android Studio as I do all my work in IntelliJ IDEA. But I have been an avid user of IntelliJ IDEA since 2003.

As Android Studio seems mainly to be a modified version of Intellij my question is are there totally specific features Android Studio has that are indispensable? Incompatible? "Standard"? vs Intellij Idea community or ultimate? Are the two interchangeable with a proper plugin set?

The quick answer is there is nothing you can do in Android Studio that you cannot do in IntelliJ IDEA (Community or Ultimate) with the Android Plugin installed and enabled. Here is a screenshot from the IntelliJ IDEA features matrix that makes that point: enter image description here

Basically, Android studio has more "branding" for Android than IntelliJ IDEA. And since it is just an Android IDE, it can be more "focused". As I mentioned, there is nothing you can do in Android Studio that you can't do in Intellij IDEA. But the opposite is not true. There are a number of (non-Android) things you can do in IntelliJ IDEA (both the community and ultimate editions) that you cannot do in Android Studio.

Regarding the question on whether or not Android studio can use IntelliJ IDEA plugins, that's going to depend on the plugin and what components (within the IntelliJ plugin API) it leverages. When you write a plugin, you have to declare (in your plugin descriptor) what API dependencies you use. Some examples are com.intellij.modules.lang, com.intellij.modules.java, AntSupport, and Git4Idea. There are dozens, if not hundreds, of possibilities - including other plugins. So if a plugin (or one of it dependencies) ends up using something in the plugin API that is not included in Android Studio, that plugin will not work. For example, one plugin I wrote (that has absolutely nothing to do with mobile development), lists on the JetBrains Plugin page as being compatible with Android Studio because it only depends on com.intellij.modules.lang and com.intellij.modules.java. So while it can go both ways, it is more likely that (due to IntelliJ IDEA having more components installed) a plugin may only be compatible in IntelliJ IDEA as a result of a dependency on something that is unique to that plugin.

Will Intellij always be lagging releases being Android Studio as it is Google's "Official" Tool.

It can go both ways. JetBrains may add things that take time to hit Android Studio; and Google may add things that take time to hit IntelliJ IDEA. It is most likely, however, the latter will be more prevalent. However, I do not know off hand how long that delay is. This JetBrians blog post may help in that regard: IntelliJ IDEA and Android Studio FAQ

My personal recommendations would be: If you know you are only going to be doing Android development, then go with Android Studio. Also new Android developers would likely find Android Studio a better fit since most documentation & tutorials will show it and there may be the occasional minor difference (such as where something is located in a menu) in IntelliJ IDEA. But if you will be working in JVM dedicated projects using Java, Kotlin, Groovy and/or Scala, or with other languages (Python, php, html, css, JavaScript, etc., etc.) or any server side (or "enterprise") code - either for your Android apps or for other work, then go with IntelliJ IDEA.

Edited Aug 4, 2018 for some clarification and an added screenshot.

Updated Nov 25, 2019 to add new information.