Android Studio 比 Eclipse 好用在哪裡?

資深 Android 開發者能說說嗎?我電腦跑 Android Studio 卡得要死 尤其是點這個軟體的菜單、按鈕…

已發布 1.0 正式版:Android Studio


Android Studio 真的很好用,現在的版本已經比較穩定了。之前剛出來時各種BUG。

優點之一就是:代碼提示和搜索功能非常強大,非常智能。

  1. 比如自定義theme有個名字叫做 light_play_card_bg.xml,如果在eclipse里,你必須要輸入light開頭才能提示下面的,而在Android Studio里,你只需要輸入其中的任意一段。。比如 card 下面就會出現提示的。
  2. 再比如Android Studio會智能預測並給你最優的提示。每一次並非給你相同的提示結果,而是你最想用最可能用的結果。

其中:Android Studio相對Eclipse 比較贊的一些特性

  1. 顏色、圖片在布局和代碼中可以實時預覽
  2. string可以實時預覽
  3. 多屏預覽、截圖帶有設備框,可隨時錄製模擬器視頻
  4. 可以直接打開文件所在位置
  5. 跨工程移動、搜索、跳轉
  6. 自動保存,無需一直Ctrl + S
  7. 即使文件關閉依然可以回退N個歷史
  8. 智能重構、智能預測報錯
  9. 每一行文件編輯歷史,可追溯到人
  10. 各種插件:例如ADB、.gitignore、sql、markdown、
  11. 圖片可直接轉.9圖片,並且自帶.9編輯
  12. 在gradle編譯時使用aar依賴超級方便


如果android studio能不經常出那麼多奇奇怪怪的問題我會換回使用它,雖然Eclipse確實很不好用且耗內存,但它足夠穩定;我會一直關注android studio,期待它的正式版早日推出!


多資源文件夾配置:

只需重寫 module 里 build.gradle 中的 sourceSets 配置:

sourceSets {
main.res.srcDirs += "src/main/res-mobile"
main.res.srcDirs += "src/main/res-tv"
main.res.srcDirs += "src/main/res-android-tv"
}

或者

sourceSets {
main.res.srcDirs += ["src/main/res-mobile", "src/main/res-tv", "src/main/res-android-tv"]
}

More: Add multiple resource folders to an Android App


為什麼要使用Android Studio:

不光是因為Intellij IDEA這個IDE超級智能、先進(功能和理念方面),Gradle 秒天秒地的構建能力也是我選擇IDEA/ Android Studio 的重要原因。

我來歪個樓:

關於如何手動將一份ADT的ANT 工程轉成Android Studio / Intellij IDEA 的Gradle 工程,大家可以查閱我寫的這個例子:ShinChven/ImmigrateToGradle · GitHub

這個例子主要目的是向大家介紹gradle 構建腳本中常用的功能和寫法,讓大家能夠看到Android Studio 的 gradle 腳本化構工程和 eclipse 可視化工具構建工程有哪些區別。

同時,如果你想使用Gradle 構建JAVA EE工程,可以查看這個例子(S2SH):ShinChven/GradleWebApp · GitHub

有些人是這樣構建工程的:

  1. 有些工程師,居然還在使用將「別人的開源代碼類、資源文件拷貝進自己工程」的這種方法來整合開源項目,經常容易把項目弄得混亂。如果開源項目龐大,拷貝進去容易,整理出來難啊。

  2. 還有一些工程師一直在使用API-8的SDK 在開發Android項目,他們認為只有這些兼容性才最好,他們的SDK Manager 估計都從來沒啟動過,更不說使用appcompat v7包來開發ActionBar 風格(現在已經是v21 Material Design了)的Android 應用了。
  3. 有些工程師在構建一個工程的時候,通常直接去網上搜索下載打包好的jar文件,而不會根據自己的需要去仔細篩選自己需要的jar 包以及開源項目的版本。他們之一稍微「聰明」一些的會把這些東西當作模板打個壓縮包保存起來,下次直接解壓使用,千萬別期望他們會靈活配置和升級,因為他們沒有聽說過依賴(dependencies { compile "xxx:1.0"; },&...&)。
  4. 有一些工程師在使用版本控制的時候,會將.settings、bin、gen、.classpath、.project等等這些文件和文件夾上傳到repository裡面去,一旦有人commit 了錯誤的配置,他們將會要焦頭爛額地整理好長一段時間。

使用Gradle 來構建:

  1. 你不需要自己手動下載和保存任何一個存在於Maven 大中央倉庫(The Central Repository Search Engine)中的jar 包或者aar 包,只需要輕鬆地通過一行compile "xxx" 腳本,就可以將它們添加到你的工程依賴中來,並且通過依賴關係來升級和管理這些jar 包和aar包。
  2. 最顯而易見的便利就是你不需要將jar 包隨工程一起拷貝給別人或者存放在版本控制裡面,開源項目與你的工程之間只需要一行腳本,就能動態鏈接起來,則不是讓開源項目以副本的形式存在於你的項目中,不能輕易升級。

  3. 你也可以配合使用include "xxx"、compile project("xxx")這樣的腳本來其它的項目模塊化引用到你的工程中來,以保證你的代碼不會和別人的代碼混在一起,隨時裝/卸。
  4. Gradle 可以通吃github 上所有的開源項目,你只需要在引用時配置sourceSets{ xxx} 腳本就能靈活適應任何結構的工程,你也可以任意定製自己的工程結構,並不需要遵循默認的工程結構。
  5. gradle 的工程更輕便,你可以你自己的代碼和gradle 腳本以外的文件和文件夾全刪掉(.settings、bin、gen、.classpath、.project、build)來保存,你可以把絕大部份jar 包引用都寫到build.gradle 中去,而不保存jar包的副本,就像三體人的縮水一樣,下次需要使用的時候,拿出來運行build.gradle就能生成和編譯項目。

eclipse 與Gradle:

eclipse 也是可以使用Gradle 的,而ADT 似乎目前並不支持使用Gradle 構建Android,經常看到github 中開源項目的引入指導中這樣描述eclipse 部分:You are on your own.


-

1. 無與倫比的速度

IDE的啟動速度只是「速度」所指的一小部分。這裡所謂速度,更重要的是IDE能否給你的coding帶來便捷,大大提升軟體構建的效率。

在開發中經歷了從ADT遷徙到Android Studio的過程,所以對Android Studio在開發中給予的諸種便利感受不可謂不深。

首先,Android Studio的智能提示足已秒殺ADT。眾所周知,Android Studio基於IntelliJ IDEA構建,而IntelliJ IDEA正是因為這個殺手鐧被譽為「最智能的Java IDE」。它的智能毋需多言,您可參見這個視頻:Instant Autocompletion in IntelliJ IDEA 10

而在基於Eclipse的ADT中,若希望得到提示,你至少需要不停地按下Alt + /(Android Studio的智能提示是自動出現的哦)。而所獲得的提示亦僅為基於文本分析所得,它們往往多數與你的代碼無關。所以在這點上,ADT完敗於Android Studio。

再者,Android Studio中安卓App的構建默認基於Gradle,這點@bunker兄在上已經提到。Gradle相較於Ant的好處在於你可以使用腳本自行指定App的構建選項。如果你接到一個任務,需要將軟體的最新測試版交付測試人員測試,同時需要將穩定版的apk文件在市場上架,再將一個含有新功能分支版本的apk文件交付PM,你會怎麼辦?如果你在ADT中,你或許需要新建至少三個項目以達到這個目的,不同版本之間代碼的同步會讓你焦頭爛額。但是在Android Studio中使用Gradle,你會發現事情變得如此簡單。在build.gradle中指定不同的編譯選項,問題便輕鬆搞掂~ (當然,從ADT中導入的Ant項目,Android Studio也會自動識別,但不會自動轉化為Gradle)

現在更重要的是,大部分Android的開源項目已經將自身轉化為Maven的形式,所以你只需要在build.gradle中添加一行代碼,就相當於是引用了一整個項目,而且都不用擔心它們之間的依賴關係!你會覺得:哇!生活竟然是這樣美好!^ ^

另外,多解析度layout自動預覽的功能對於你我天朝安卓開發者而言,何來不是讓人感動得流淚的存在~

還有諸多貼心功能例如string.xml中string自動顯示,難道還不能讓你淚流滿面嗎?

而它多語言環境預覽和UI生成器的功能沒有太多用到所以暫時不發表評論。

最後,也是最不重要的一點是,那就是軟體的運行速度了。這點不知是否是因為題主的電腦的緣故,在我電腦更換了SSD之後,所有的軟體全部變得健步如飛,媽媽再也不用擔心我的電腦速度啦~ :-)

2. 賞心悅目也無比實用的UI

我使用主題的是Darrcula。和ADT充滿了鄉土殺馬特氣息的UI比起來,Android Studio的UI簡直就是高帥富嘛!^_^

不只是視覺上的美,更重要的,還是速度。

在ADT中你無法做到在最大化代碼編輯區域的同時單獨打開項目結構視圖(或是任一視圖),你得不停最大化最小化。相信您耗在這方面上的時間,應該不少吧!(更正,Eclipse是可以做到的! 感謝@Gem Chen 的提醒,我使用的版本很老而且我一直都是直接雙擊最大化… T T)

當然,這個問題在Android Studio中是完全不存在的哦!

當然,目前Android Studio仍然處於beta階段,DDMS功能仍然需要使用ADT中的相關模塊,在Project Structure中設置的項目依賴庫不會自行轉化為Gradle文件中的依賴部分(仍然需要自己修改Gradle文件)。這些或許是它目前唯一遜於ADT的部分

-


這段時間剛好寫了一個 Android Studio系列教程 ,公司的項目也全線使用Studio+Gradle,任何一個東西都不是絕對的,這裡我就來說下Studio的優點與缺點吧。

目前Studio仍未發布正式版,目前最新的是1.0 rc2版本。

優點:

  • 1、Google推出的

毫無疑問,這個是它的最大優勢,Android Stuido是Google推出,專門為Android「量身訂做」的,是Google大力支持的一款基於IntelliJ idea改造的IDE,google的工程師團隊肯定會不斷完善,上升空間非常大,這個應該能說明為什麼它是Android的未來

  • 2、速度更快

Eclipse的啟動速度、響應速度、內存佔用一直被詬病,相信大家這點應該深有體會,而且經常遇到卡死狀態。Studio不管哪一個方面都全面領先Eclipse。這點可能在windows上沒有表現出來,win上運行studio同樣會出現卡頓現象,但這隻能說win平台還沒優化好,畢竟還沒有發布正式版,或者說windows系統本身就很卡頓,你還能指望它做什麼呢。

  • 3、UI更漂亮

I/O上演示的那款黑色主題真是太棒了,極客范,Stuido自帶的Darcula主題的炫酷黑界面實在是高大上,相比而言Eclipse下的黑色主題太low了

  • 4、更加智能

提示補全對於開發來說意義重大, Studio則更加智能,智能保存,從此再也不用每次都 Ctrl + S了。熟悉Studio以後效率會大大提升。

  • 5、整合了Gradle構建工具

Gradle是一個新的構建工具,自Studio亮相之處就支持Gradle,可以說Gradle集合了Ant和Maven的優點,不管是配置、編譯、打包都非常棒。

  • 6、強大的UI編輯器

Android Studio的編輯器非常的智能,除了吸收Eclipse+ADT的優點之外,還自帶了多設備的實時預覽,相對這對Android開發者來說簡直是神器啊。

  • 7、內置終端

Studio內置終端,這對於習慣命令行操作的人來說簡直是福音啊,再也不用來回切換了,一個Studio全部搞定。

  • 8、更完善的插件系統

Studio下支持各種插件,如Git、Markdown、Gradle等等,你想要什麼插件,直接搜索下載。

  • 9、完美整合版本控制系統

安裝的時候就自帶了如GitHub, Git, SVN等流行的版本控制系統,可以直接check out你的項目。

由於Studio目前國內還未普及,所以如果你是新手可以直接學習Studio,上手了就比那些老手們多了一項技能,如果你是老手已經對eclipse操作情有獨鐘的話,沒關係,Studio內置可以直接把快捷鍵設置成eclipse風格的。

缺點:

首先Studio目前仍未發布正式版,可能有些不穩定,但是用了這麼久,發現的bug很少;其次從Eclipse遷移到Studio有學習成本,不過這對於一名開發者來說學無止境,而且不想學習的話可直接設置eclipse風格的快捷鍵;最後Studio官方解釋暫不支持NDK,所以如果你的項目有使用NDK不建議使用,但是你們以為1.0的樣子就是它以後的樣子么?

毫無疑問Studio是Android開發者的未來,我們有必要去學習使用它。如果你想學習的話不妨跟著我的 Android Studio系列教程 來一起學習,圖文並茂,堪稱史上最詳細。

最後來張我本地Android Studio的預覽圖


很多人都提到了Intellij IDEA / Android Studio 的智能提示很強大

但是直接這麼說貌似不是很直觀哈,給大家上點兒圖感受一下。

應該能看出優勢了哈~

假設同樣是輸入「abc」之後開始檢索

Eclipse 只能提示 like 『abc%『 的內容

Intellij IDEA 能提示 like "%a%b%c%" 的內容


目前只發現Android studio比eclipse多一個好處,可以指定調試版本的簽名文件。作為一個自己軟體的使用者,我接受不了eclipse下必須使用debug版本的key。

至於gradle速度,其實我寫了好的配置文件,ant也可以打包....

不喜歡studio的地方,沒有辦法把一些文件加到Android依賴之前,沒辦法友好使用未公開但public的API。


@嚴來忠 區別在這裡

這兩個方法調用在同一個Activity的onCreate中

你可以自己式一下


縱有千般好處,用gradle就慢得要死,當然這主要怪國內網路環境,SBgfw就不吐槽了。但studio對網路依賴太嚴重了。新建要連gradle網站,編譯還要連gradle站,自己預先下載下來gradle都不認。google做這個時顯然沒考慮到網路不行的地區


顏值


我們公司最早的android developer最早都用eclipse,用maven編譯,等Google官方剛推出android studio,我們就全部遷移到android studio了,gradle比較慢,但是對xml的支持非常棒,我覺得自從用了AS,我再也不會回到eclipse了


2015-09-09 更新:

IntelliJ IDEA 圖文教程專題:judasn/IntelliJ-IDEA-Tutorial · GitHub

=================================

在用IntelliJ IDEA。

用過myeclipse、eclipse

嘗試過Android Studio。

2015-03更新:

@IntelliJ IDEA新手必看視頻教程(新手問題總結)

總結:

IntelliJ IDEA旗艦版比eclipse、AS等最強大的地方是:

額外強大地支持Web前端開發,比如各種JS框架、CSS框架、HTML、JSP等等,

以及各種構建工具、各種部署工具、各種web容器、各種開發語言支持、

支持各種框架有:Spring MVC, GWT, Vaadin, Play, Grails, Web Services, JSF, Struts, Flex and other frameworks.

支持各種前端有:HTML5, CSS3, SASS, LESS, JavaScript, CoffeeScript, Node.js, ActionScript and other languages.

一個IntelliJ IDEA解決了Java程序員常見需求,而且整理得很人性化。

======================================================

首先有一點需要你牢記:

IntelliJ IDEA是占內存大戶,據我目前經驗是所有IDE裡面最占內存的(假設你所有插件都是啟用的情況下),

所以建議自己電腦最好能8G內存以上,16G為佳。還有本錢就是上SSD。

8G以下的說卡,說慢在我眼裡都是理所當然的,IntelliJ IDEA就是這個德行,特別是開發Java的程序。

嘗試Android Studio的時候感覺跟IntelliJ IDEA差不多了,所以就直接使用IntelliJ IDEA了,

IntelliJ IDEA可以開發Android,更重要的是IntelliJ IDEA還支持如下語言:

不需要另外裝插件的就可以支持的有:Java、HTML、CSS、Javascript、SQL

需要裝它提供的插件才能支持的有:Ruby、Php、Python

IntelliJ IDEA的那些東歐程序員們是很好學的,假如Android Studio有一些好的新特性,他們也會學習的,只是時間上稍微會晚一點。

IntelliJ IDEA的迭代是很快的,而且使用IntelliJ IDEA的用戶在小版本更新上最好是能跟上,所以在我眼裡,IntelliJ IDEA是一個需要經常更新的IDE,

由於類似我這種經常更新的人官網是贊同的、並且提倡,所以在更新上他們會很好地為你保留舊的那些個人習慣配置。

為了更好羅列IntelliJ IDEA優點,我也整理以下資料:

IntelliJ IDEA和Myeclipse功能特性對比:有道雲筆記

還有就是JB家的產品基本都是基於Java開發的,所以熟悉了他們一種開發工具之後再使用其他的,沒有壓力。

JetBrains家所有產品介紹:有道雲筆記 (目前已經涵蓋主流的開發語言,包括最新出的C/C++)

======================================================

上面內容只是比較範圍地講IntelliJ IDEA(對我來講也是Android Studio)的一些基本了解。

現在來說一些細節的優點。

1.把你集成了正常Java程序員可能會用到的功能插件,所以你不需要像eclipse那樣經常為了某個功能找插件,IntelliJ IDEA的智能還提現在它是懂程序員的,很多細節都會幫你考慮。

2.它有一個Task,我認為是做開發任務的時候必用的一個功能,這個功能會牽扯到的點太多了,所以這裡不說了,具體可以看我最下面提供的資料去找到對應演示。

Task是我在IntelliJ IDEA最離不開的一個功能。

3.集成了常用版本控制工具。對於git支持很好,基本常用的git功能,在IntelliJ IDEA上都可以得到體現,所以我一般很少用命令行。

4.常用的部署工具集成

5.多屏支持

6.TODO的自定義功能

7.環繞功能

8.有一些特別好用的快捷鍵

9.加書籤方式快捷

10.多行同時操作

11.還有一些寫代碼的細節,比如大家說的智能提示、重構等,我這邊就沒辦法一一羅列了,具體可以看下面的資料,要自己慢慢摸索。

12.自帶反編譯插件(IntelliJ IDEA14開始)

13.增強debug功能,在debug的時候即使沒有alt+F8的變數也可以在代碼編輯窗口中顯示其值(IntelliJ IDEA14開始)

14.強大的git內置支持

最新的IntelliJ IDEA14新特性:

What"s New in IntelliJ IDEA 14

新人難點,IntelliJ IDEA項目是模塊的結構,很多eclipse的用戶剛剛轉過來的時候不習慣,但是模塊化在我眼裡是優點。project和module的關係:有道雲筆記

最後:

很多很多eclipse用戶剛剛使用IntelliJ IDEA的時候,自己瞎摸索,不理解它的模塊結構,找不到資料,然後就停用了就開始IntelliJ IDEA垃圾。

也有很多很多eclipse用戶自從真正了解了IntelliJ IDEA之後就忘記了eclipse。

只有eclipse和IntelliJ IDEA都了解的人才能有能力對比兩個IDE,而摸索IntelliJ IDEA需要時間、精力成本,看你是否願意付出了。

======================================================

IntelliJ IDEA資料:http://www.YouMeek.com/idea(不斷更新)


用了很長一段時間AndroidStudio之後的體驗:

結論:不想再用Eclipse了。

AS的優點:

1,更流暢 (當然會內存佔用更大

2,gradle支持的很好,包依賴管理很輕鬆

3,支持Kotlin語言 (Android的Swift語言, 誰用誰爽哭

4,代碼編輯器更智能,搜索更方便(支持模糊搜索,Eclipse需要裝插件,而且還是不方便

5,IDE在很多細節上都更友好

另:無論是使用 Eclipse 或者 Android Studio, 都無法提高代碼水平 :)


之前由於我用時間不長,遇到很多問題,但是現在覺得真心好用!

----------------------------------------------------------------------------------

下面是以前的看法,錯誤的!黑體字是自我修改

其實eclipse沒有想的那麼差

我在android Studio上看到的不足

1、ctrl+x這個快捷鍵。剪切當前行,很容易把我複製好的內容給覆蓋掉(這個說錯了,在Studio上面可以用ctrl+y刪除當前行)

2、gradle編譯起來,確實挺慢的。(eclipse自動編譯就很好了,一下子就跑出來了,現在0.6.1版本的Studio快多了

3、寫注釋,在androidStudio上面你自己把注釋的格式寫出來,在eclipse上面用alt+shift+j就可以了(可以在keyMap上面修改setting-&>keymap-fix doc comment)

4、關閉當前的標籤頁,在eclipse裡面用ctrl+w就行了,但是在androidstudio上面shitf+滑鼠

5、最重要的一點,就是androidStudio的logCat顏色分類太難看了吧。一堆黑乎乎的東西。想找個什麼都能找。但是eclipse就不同了。(LogCat這裡也是可以修改顏色的,setting-&>editor-&>colorfont-&>Android Logcat

我看到其他人說eclipse卡,就順便說一下電腦,win7+i5+8G內存,從未覺得卡。

還有一點就是:在setting-&>keymap那裡可以選擇使用eclipse快捷鍵的

不過還得吐嘈一下,只要升級一下Studio,Gradle就一堆問題,buildTool要也升級!!!


儘管用Android Studio很可能會由於眾所周知的原因而不能正常工作,因為它需要聯網做一些配置。就算你的電腦配置不好跑起Android Studio有點卡或者是很費力,因為現在ADT處理不能用的狀態。我在兩台電腦上裝了最新的Eclipse ADT Bundle之後更新到最新的Build Tools之後,你只要改變任何Resources文件,那麼你必需重啟它進行編譯,否則它不會自動重新編譯,你一旦選擇Clean Projects,那麼R也不會生成出來,只有重啟它。不知道最近有沒有更新把這個問題修復,不過看Android網站貌似也難找到ADT了,所以估計以後Google都不太願意繼續維護它了


感覺eclipse和Android studio都不好用。IDEA好用


我就說一點,目前排名第一的答案一看就沒怎麼用過Eclipse,連Content Assist和Word Completion都沒有分清楚就開始亂說

而在基於Eclipse的ADT中,若希望得到提示,你至少需要不停地按下Alt + /(Android
Studio的智能提示是自動出現的哦)。而所獲得的提示亦僅為基於文本分析所得,它們往往多數與你的代碼無關。所以在這點上,ADT完敗於
Android Studio。

還「僅為基於文本分析所得」。。。記住了,Eclipse的Content Assist的快捷鍵是Ctrl + Space,那才是智能提示(當然,有輸入法時會和輸入法快捷鍵產生衝突,需要重新設置一個快捷鍵)

而Alt + /只是Word Completion,是用來根據輸入歷史快速猜測短語的,那個當然不是智能提示

當然,Eclipse還做不到輸入任何字母都開始智能提示(但是能改),而IntelliJ可以,除了這一點,二者在Java開發上沒有明顯差別

但是在Android開發上,Android Studio還是有些優勢的,對於Java代碼和資源的結合與跳轉方面,要比Eclipse好不少


我比較喜歡的兩點:

1. gradle用起來比較方便。再也不用為兼容性麻煩了。

2. xml的補全比較好用。

我不喜歡的兩點:

1. 太慢

2. 太慢


idea的模糊匹配已然秒殺eclipse

可以在邊欄自動顯示drawable

自動顯示R字元串、dp、px等信息

debug時自動在源碼中插入變數值

scala插件比eclipse的好一萬倍

等等。。。


推薦閱讀:

okhttp,retrofit,android-async-http,volley應該選擇哪一個?

TAG:Eclipse | Android | AndroidStudio |