Android Studio與其IntelliJ IDEA相比, 其差異與利弊主要有哪些?

如果可能的話, 希望能把IntenlliJ IDEA的付費版和免費版分開討論


首先想稍微解釋一下什麼叫做基於」Android Studio是基於IDEA開發的"

Intellij有一個非常強大的用XML描述插件系統,他可以在IDE的各個環節加上擴展,

比如歡迎界面,語言和構建系統的支持,菜單, etc

這些代碼以外部資源(jar)的方式載入進IDE,並不需要你去修改Intellij本身的代碼。

所以Android Studio最核心的部分就是一個Intellij插件(Android Support Plugin),那麼最初Android Studio和直接用Intellij + Android插件的區別就似乎就只是一些啟動flag的問題(比如說要有一個flag表明這是不是專門的android studio模式,導致歡迎界面有些不同)

但實際上的差別還是特別大的。

1. 基本功能上

首先intellij裡面的Android Support plugin落後Android Studio裡面的Plugin很多版本(有時候會有半年甚至半年以上的GAP),這是因為Intellij發布在先,之後Google才會跟進開發,等Android Studio發布了之後,Intellij那邊再把Google的plugin拿過去測試並發布

其次為了讓用戶體驗更好,在Android Studio模式下,插件會提供更定製化的界面,比如「模塊設置」等功能

另外Google發現很多外部插件和Android Plugin會有衝突,所以對外部插件的支持不是很積極。

2. 語言支持上

發行版的Android Studio其實包含了不止Android Support插件,還會包含NDK插件(支持C++的開發),這是Google花重金向Jetbrains購買的C++代碼分析和索引技術,這些技術之前只用在收費的Clion上面,現在雖然Google能讓大家能在Android Studio中也能免費用上。但單獨用免費的Intellij是沒有這個好處的。

之後也會有更多的功能因為各種限制不會放在Android Support插件中而只能使用Studio.

3. 軟體質量

需要對開發團隊強調的是,Android Studio比Intellj + Android插件要穩定很多

看過Intellij代碼的童鞋可能有感覺就是就是代碼注釋特別少,測試特別簡單

Google的開發觀念還是不太一樣的,所以Google在開發Android Studio的過程中加入了大量的單元和集成測試,但不幸的是這些測試都只是專門跑在Android Studio的模式下,很多測試已證實在Intellij模式下會掛掉,但這個google修理得確實不太積極:(

-&> 雖然 2013 年的官方文檔說 AS 不是 idea 的 fork,但現在是 2016 年,二者的差別似乎不只因為配置不同了

UI上的不同,像我之前提到過,主要還是插件在不同模式下做的事情不同,而不是代碼fork的問題

Google的原則是盡量不fork,不過事實上也確實很難做到,比如Intellij的日誌診斷系統在Android Studio下面就被改掉了(不然bug report都發到jetbrain去了)。原因主要還是Intellij的插件系統還沒有非常完美,對此Google會嘗試交一些patch給Intellij,爭取之後能再改回來。

另外就是有時候Intellij也會fork Google的Android plugin的代碼,兩邊相互扯皮之事也時有發生。。。


瀉藥

我覺得還是看官網說明吧

  • IntelliJ IDEA and Android Studio FAQ IDEA與AS區別

  • IntelliJ IDEA Editions Comparison Matrix IntelliJ付費版與免費版(社區版)區別

總的來說IDEA社區版基本支持常用的Android開發,功能特性會比Android Studio稍晚一些,因為不是同一個開發團隊(AS是Google)開發,需要時間移植過去。功能應該是差不多,性能方面AS應該會好一些吧,畢竟是Google官方出的。

單獨的Android開發,AS就夠用了。


謝邀,

下面簡單說一下我所了解的:

首先是差異,IDEA是JetBrains公司推出的Java集成開發環境,分為免費社區版與收費旗艦版,據我所知這兩個版本的差異主要在對JavaEE開發的支持上,社區版貌似只支持JavaSE,Android,Groovy,Scale,收費版還支持JavaEE的開發,具體可查看官網上的差異說明,可以到IntelliJ IDEA 查看。下面是個官方截圖:

而Android Studio是基於IDEA Commutity Edition開發的,因為Community 版本不僅是免費的而且是開源的,請看下圖:

可以看出之前剛推出的studio1.0正式版是基於idea13開發的,而不是最新的idea14.

上面這些大概說清了這三者之間的差異了。

下面說一下利弊:

雖然Android Studio是基於IDEA開發的,但studio是一個純粹的Android開發環境,並不支持諸如Groovy,scale雖然IDEA社區版支持,但google已把它們剔除了,所以可能Studio支持的開發更少,貌似屬於弊的範疇吧(可我覺得這是優點,Android Studio就只做Android)。

再者,雖然IDEA 社區版也原生支持Android開發,但對於Android開發的支持上定不如Studio來的徹底,再加上經過Google兩年的開發studio已經進入了1.0的正式版時代,所以如果你做Android開發選studio就對了。(在Studio轉正之前idea應該是做Android開發的一個不錯的選擇,但現在不是了)。

最後總結一句,如果你是Android開發者就選擇studio吧,這是最佳選擇,而如果你不是那就選擇idea吧。

求贊哦!謝謝!


別的不說,來兩個實際遇到的問題:

一、AS 的項目在附贈的 gitignore 規則下完全清理了目錄後,idea ultimate 打不開,說缺 iml 文件。AS 能打開、構建這樣的項目。

二、idea 不支持、或者難以方便地讓它支持 NDK 的開發與調試。AS 自帶 NDK 功能。

雖然 2013 年的官方文檔說 AS 不是 idea 的 fork,但現在是 2016 年,二者的差別似乎不只因為配置不同了。


兩個都裝過,就android開發從界面到功能,idea ultimate都是和as基本一致。

感覺AS就是基於idea去掉了和android無關的內容,最重要的是改了個好名字。如果只開發移動端用as沒問題。

但是idea本身又可以開發java ee類的application, 所以現在已經完全轉向IDEA。一個ide走遍天下的感覺真的很好,如果是全乾工程師的話。。。


Linux環境下,AS的字體渲染有Bug,字體都是虛的,飽和度完全不夠,IntelliJ卻沒有這個問題


推薦閱讀:

為什麼有人要求 Apple 在安卓平台按照規範設計,而不要求谷歌在 iOS 上面按照規範設計?
普通用戶提問:如何評價「安卓手機6個月就進入衰老期」的觀點?
在Android應用中任意位置執行代碼彈出Dialog有什麼優雅的實現方案?

TAG:Java | Android | IntelliJIDEA |