Android Studio自從推出以來炭剪,網上就被很多人拿來推廣玫霎。15年之前,還是beta版霹菊,關注的人不多镰官。15年以后,說是成熟了吗货。作為新東西泳唠,要搶Eclipse的市場,總得是要說出比Eclipse好在什么地方的宙搬。
在網上搜索一下笨腥,幾乎都是這篇文章總結了9個優(yōu)點:
1拓哺、Google推出的
2、速度更快
3脖母、UI更漂亮
4士鸥、更加智能提示補全
5、整合了Gradle構建工具
6谆级、強大的UI編輯器
7烤礁、內置終端
8、更完善的插件系統
9肥照、完美整合版本控制系統
雖然9個優(yōu)點并不算多脚仔,而且還值得商榷,但是這些文章無一例外的表現出了極大的優(yōu)越感舆绎,似乎Eclipse被完全輾壓鲤脏,毫無還手之力。似乎用eclipse是很low的吕朵,而用Android Studio才是高大上猎醇。我深度用過Android Studio,發(fā)現一些問題努溃,感覺寫這個的人也許沒有用過Android Studio硫嘶。
Android Studio是基于Idea的社區(qū)版本開發(fā)的。Idea這東西茅坛,在Java領域是eclipse的手下敗將音半。它的底子并不比eclipse好。
這9個優(yōu)點里面贡蓖,只有兩個算得上是給力曹鸠。
一是Google推出的
這是個金字招牌,Google在某種程度上已經代表了一種信仰斥铺。所謂“谷歌出品彻桃,必屬精品“。但實際上谷歌出的廢品也很多晾蜘,成功的項目并不多邻眷。谷歌的搜索,地圖剔交,Gmail老本行做得不錯肆饶。Android和Youtube是買來的。其它原創(chuàng)性的項目就幾乎沒有做好的岖常。
而且谷歌出的新項目感覺大多是半成品驯镊,然后就當做正式版推出來。谷歌的審美一向很差,做出來的產品沒幾個漂亮的板惑。Google在互聯網領域有自己的特長橄镜,但是不必夸張到什么都能做,只要做能做好這種高度冯乘。
二是強大的UI編輯器
這個確實比Eclipse要好洽胶。但是做Android的UI,一般是手寫xml代碼裆馒,也就是說這個主要是用來預覽的姊氓。但是ADT也是谷歌做的,ADT原來也可以做到這個领追,只是谷歌不做他膳。
如果有人說,速度更快 是Android Studio比Eclipse的優(yōu)點绒窑,那么他就是在扯淡棕孙。我在想為什么這么多人對自己沒有用過的東西,能一本正經的胡說八道些膨。這也加深了我對網上的一些言論的不信任蟀俊。
事實上Android Studio的啟動速度,響應速度订雾,編譯速度肢预,幾乎都比Eclipse慢。所以我們就在網上看到兩種現象洼哎,一種是說Android Studio多么的快烫映,一種是說它多么的慢。兩種都有人說噩峦,真是奇哉怪也锭沟,那要信誰呢?說他快的人更信誓旦旦识补,而說他慢的人則是抱怨族淮,還被人說他電腦不行,還得多費口舌和別人解釋他電腦并不差凭涂。說慢的人祝辣,肯定是在同一臺機器上運行Eclipse和Android Studio得出的結論,如果在這臺不行的電腦上面切油,Eclipse快蝙斜,Android Studio慢,在怪電腦的同時還能得出Studio快結論澎胡,那不是瞎扯淡是什么孕荠。
這些細節(jié)不重要绢片,重要的是如此明確的事情,可以一本正經的顛倒黑白岛琼。讓我有一種連人都敢殺,還怕殺豬的錯覺巢株。這種話都敢說槐瑞,那還有什么不能說的。
UI漂亮更本不值一提阁苞,并且很多人覺得Idea很丑困檩,而且Studio圖標的辨識度比Eclipse要差得多,Eclipse一看就知道哪個是包那槽,哪個是文件夾悼沿,哪個是java文件。Studio那些扁平的圖標骚灸,就不好區(qū)分糟趾。PS:Eclipse也可以把編輯器調成黑背景,字調成綠色的甚牲。這不是studio的專利义郑,這是任何一個IDE的基本功能。
其它幾個優(yōu)點Eclipse全部都有插件丈钙,裝上就去有了非驮。Eclipse以插件起家并且以此名揚天下,Studio竟然說他有更完善的插件系統雏赦。簡直是令人笑掉大牙劫笙。
Studio裝上就帶一些插件,而Eclipse要自己安裝星岗,這點可以說不如Studio方便填大,但這只是小問題。Studio除了慢這個大問題外伍茄,也有很多小問題栋盹,并且對我來說還有致命問題。
一敷矫,Studio的智能提示補全并不好用
你打一些字母以后例获,看到想要的方法排在第一行,然后打回車曹仗。這個時候你發(fā)現上屏的不是自己看到的那個方法榨汤。這是因為你在打回車這段時間,他調整了那個提示的順序怎茫,在宣傳上還說他會智能的調整順序收壕,把你想要的放在前面妓灌。我最怕這種自以為是的智能。
二蜜宪,Studio的文件組織方式不如Eclipse簡單明了
Studio把簡單的事情搞復雜了虫埂,而且Android源代碼中app的組織方式是Eclipse的方式,在源碼環(huán)境下更適合Eclipse圃验。
把簡單事情搞復雜掉伏,一向是學院派的專長,編程界深受其害澳窑。
三斧散,Studio工程組織方式邏輯有問題
在Eclipse中,是一個Workspace摊聋,下面可以放多個Project鸡捐,一個Project就是一個app。Workspace是工作區(qū)麻裁,一個容器的概念箍镜,容器也可以是空的,里面可以放一些app項目悲立,放一些web項目鹿寨,可以放一些文檔項目,非常的自然薪夕。
但是在Studio中脚草,是一個Project,下面對應多個Module原献,一個Module是一個app馏慨。Project這個概念是很奇怪的,我要做幾個沒什么關系的app姑隅,如果放在一個工程下面写隶,每個app竟然叫做模塊(Module)。而且在每個module的mainfest.xml中還不能單獨設置use sdk讲仰,編譯時會以Project的gradle設置為準慕趴。也就是說,Studio是認為一個工程只做一個app的鄙陡。所以新建一個Project的時候冕房,他自動給你建一個叫做app的module。這不如Eclipse方便和自然趁矾。
四耙册、Studio查看日志不如ADT方便
ADT的Filter是一個列表,放在左邊毫捣,點一下就行详拙。Studio的Filter是一個下拉框帝际,切換不如列表方便。
五饶辙,Studio沒辦法引用自定義的framework
這個問題是致命的蹲诀。我搜遍全網,包括stackoverflow弃揽,雖然gradle明確表示不支持此功能侧甫,但還是找到有人說了幾種處理辦法,我嘗試了所有他們提到的辦法蹋宦,沒有一個成功。在Eclipse中如此簡單明了的功能咒锻,被搞得復雜無比冷冗。沒有辦法引用自定義的framework,直接導致我不得不換回eclipse惑艇。
另外蒿辙,我從studio2.2.2升及到2.2.3以后,好好的項目就變得沒辦法編譯滨巴。在網上找到原因思灌,是因為2.2.3升級了gradle,但是項目里面還是引用的舊版本恭取,而且他自動把原來那個老版本的gradle給刪除了泰偿。導致找不到gradle。他不自動處理項目的配置就算了蜈垮,至少給個提示耗跛,或者不要刪除老的gradle,但是他沒有攒发,一直在那里跑滾動條调塌。后來發(fā)現是他在下載gradle,這七八十M的東西惠猿,國內訪問國外網速慢可以說怪不得他羔砾。但問題是他自動下載的那個是gradle3.2。而studio2.2.3最低版本要搭配gradle3.3偶妖。如果等他下載完姜凄,他就會告訴你他需要gradle3.3,然后又開始下載3.3餐屎。就是這么任性檀葛。
ADT也出過類似的問題,記得升級某個版本以后腹缩,導致沒辦法創(chuàng)建Android項目屿聋。
谷歌出的東西空扎,很難認為他們自己有測試過。這樣的致命BUG是很難發(fā)現的嗎润讥?
我有理由相信做ADT的和做Android Studio的不是同一伙人转锈。ADT承襲eclipse的思想,簡單直觀楚殿,是工程化的思路撮慨。而Studio承襲idea的思想,是學院化的思路脆粥。
Android是谷歌的砌溺,ADT和Studio也是谷歌的,谷歌為什么放棄發(fā)展ADT而去發(fā)展Studio变隔。這不是技術原因规伐,而是商業(yè)斗爭。eclipse是基金會的匣缘,是一個開放的平臺猖闪,而且衍生了像komodo這樣的IDE,連flash項目都有插件肌厨。是一個平民化的好用的平臺培慌。谷歌不能掌控它,所以谷歌學微軟取名搞了一個studio柑爸。雖然說studio的一些問題吵护,可能后面谷歌會慢慢的優(yōu)化和解決。但是這種斗爭表鳍,極大的浪費了程序員的時間何址。
eclipse從2001年出來,經過這么多年發(fā)展进胯,用戶遠超netbeans和idea用爪,是有他的長處的。
為android studio搖旗吶喊胁镐,是不明智的偎血。