Android Studio初探:不只是一個(gè)簡單的IDE
譯文初探 Android Studio
【2013年6月5日 51CTO外電頭條】對于Android 開發(fā)者來說,日常開發(fā)對于他們來說是干脆直接的。你只需要下載Eclipse并且安裝Android Developer工具插件就可以了。Android的Eclipse插件為開發(fā)者完成了不少工作,而且或多或少能符合大多數(shù)開發(fā)者期望那樣。但現(xiàn)在,Google最新發(fā)布的Android Studio 攪局了,這款A(yù)ndroid IDE開發(fā)工具對任何Android 開發(fā)者而言,都是極大的飛躍。
雖然擁有”Android Studio”的名稱,并且軟件直接來自Google的,但大多數(shù)Java開發(fā)人員很快意識到這款I(lǐng)DE是基于IntelliJ IDEA,它是JetBrains公司的出品。我認(rèn)識有的開發(fā)者,一直都大談開源的美德,但一談?wù)揑ntelliJ就馬上改變論調(diào)。有的甚至嘲笑我,不去投資699美元購買一個(gè)強(qiáng)大的能節(jié)省工作時(shí)間的IDE工具,是不夠?qū)I(yè)的表現(xiàn)。
Google深知道Eclipse并不是每個(gè)人都喜歡使用的,事實(shí)上分步的環(huán)境配置將不少人攔在了Android開發(fā)之外。通過發(fā)布一個(gè)免費(fèi)的基于IntelliJ配置的Android開發(fā)工具,谷歌不僅滿足了IntelliJ狂熱愛好者的需要,同時(shí)也帶給Android開發(fā)者更容易安裝和使用的開發(fā)環(huán)境。然而,更大的問題是是下一步Google打算怎么走?!?/p>
更智能的Android IDE
Android Studio基于IntelliJ的社區(qū)版本構(gòu)建,并增強(qiáng)了外觀和分析功能。許多的IntelliJ的愛好者對其復(fù)雜的編輯器和干凈的外表情有獨(dú)鐘。事實(shí)上,Android Studio運(yùn)行十分迅速,并提供響應(yīng)式的接口。是的,的確是這樣的。Android的模擬器繼續(xù)給我?guī)眢@訝的是在我的六核的臺式機(jī)上運(yùn)行的速度比在我的用了兩年多的不怎么高級的智能機(jī)上跑Android 2.2還要慢。Android Studio只集成了模擬器,雖然對此抱怨是不大公平的,但是當(dāng)調(diào)試階段的時(shí)候,用戶等待Android虛擬設(shè)備啟動(dòng)并耗費(fèi)不少時(shí)間并會(huì)周期性暫停。
Android Studio還提供了一套深度分析工具,這將有助于幫助開發(fā)者完成代碼和在交付前進(jìn)行分析。Android的API現(xiàn)在標(biāo)記了更多的元數(shù)據(jù)通常會(huì)返回空指針。如果忘記了捕捉這些異常,Android Studio將使用這些元數(shù)據(jù)去指出這些潛在的bug。我編寫了一些看上去還算整潔的代碼,但Android Studio很快就找到了上百種能讓代碼更整潔運(yùn)行得更快的方法。IntelliJ團(tuán)隊(duì)花了很長時(shí)間去編寫能分析開發(fā)者在編輯器中編寫代碼質(zhì)量的代碼,這樣可以讓開發(fā)者重構(gòu)代碼以提高代碼運(yùn)行效率。
Android Studio給用戶提供了一套豐富的編輯和分析代碼的工具碼,但當(dāng)其首次運(yùn)行時(shí)其控制權(quán)是交給Android虛擬設(shè)備的。
Android Studio的主要貢獻(xiàn)在于它是一個(gè)可以用于設(shè)計(jì)Android布局的拖拉控件集。用戶可以拖動(dòng)部件并且Studio顯示對應(yīng)的XML布局文件。
另一個(gè)不錯(cuò)的功能是可以讓開發(fā)者在設(shè)計(jì)的時(shí)候能同時(shí)看到所設(shè)計(jì)的應(yīng)用在6種左右不同設(shè)備中顯示的尺寸大小。用戶可以調(diào)整布局大小以到布局是如何顯示在一臺Nexus手機(jī)或平板電腦中。這對于那些必須將其設(shè)計(jì)的應(yīng)用適配大量不同尺寸屏幕的Android開發(fā)者來說,是天大的喜訊。Android Studio在幫助將控件擺放在正確的位置方面的確做了很好的工作,因?yàn)檎{(diào)試階段中最重要的部分就是測試其實(shí)際效果。能夠快速看到設(shè)計(jì)的界面在多種尺寸中的效果對開發(fā)者來說的確是福音。
采用Android Studio需要那些熟悉Eclipse的開發(fā)者重新學(xué)習(xí)一下。不僅是一些按鈕的位置不同了,Android Studio還和Gradle,目前最新的構(gòu)建工具進(jìn)行了整合。如果開發(fā)者仍然停留在Ant或Maven階段,則將不得不使用另外一種解決方案去構(gòu)建應(yīng)用。無論是文件的結(jié)構(gòu)還是語言,Gradle都有所不同。
關(guān)于云方面的特性
在web頁面方面,Gradle將很容易創(chuàng)建多個(gè)版本,但將來情況如何不得而知。我認(rèn)為,隨著應(yīng)用變得越來越復(fù)雜,Gradle將會(huì)是很受歡迎。當(dāng)我測試的Android Studio的時(shí)候,我建了3個(gè)不同的應(yīng)用使用的都是相似的代碼,并使用三個(gè)不同的項(xiàng)目,因?yàn)檫@將更簡單的。這樣的工作將越來越普遍,因?yàn)槲覀兌枷虢y(tǒng)一去管理項(xiàng)目。
值得注意的是Gradle是最新的領(lǐng)域特定語言中的一個(gè)典型的例子,它被描述為“最小化”的語言,有著很好的自定義結(jié)構(gòu)以便去應(yīng)對各類情況,在這種情況下,Gradle是一種基于Groovy 的DSL,這意味著用戶必須再三考慮Groovy這種語言和Gradle是否適合自己去學(xué)習(xí)使用。但在使用Android Studio過程中,你使用的是Java語言,這意味著在編程過程中要遇到三個(gè)略有不同,但結(jié)構(gòu)相似的語言。雖然我一直非常欣賞的DSL的理念,但依然感覺在Android Studio中使用時(shí)有點(diǎn)復(fù)雜。
可惜的是,建立一個(gè)應(yīng)用程序是如此復(fù)雜以至于我們需要一個(gè)圖靈完備的構(gòu)建語言,所以我們可能會(huì)使用最新和功能強(qiáng)大的構(gòu)建工具 - 今天可能就是Gradle了。好消息是,象Hudson和Jenkins這些基于云的工具都內(nèi)置了Gradle工具,因此我們可以期待越來越多的項(xiàng)目使用它。
(上圖所示,Android Studio能讓你能同時(shí)在不同的Android設(shè)備中看到應(yīng)用的布局)
關(guān)于Android Studio中最有趣的部分是它給大家?guī)硎裁礃拥某兄Z。其網(wǎng)站宣傳這是“早期預(yù)覽版本”這是慣用的代替公測的手法宣傳。在使用過程中,我創(chuàng)建一些基本程序應(yīng)用時(shí)都沒遇到任何嚴(yán)重的問題,但我注意到有幾個(gè)地方的文檔居然會(huì)跳到Eclipse文檔中去。
Android Studio對于Gradle鐘愛有加,他們認(rèn)為Gradle將更加強(qiáng)大,并能與云更好地整合。Google已經(jīng)在談?wù)搶⒏嗟墓δ?mdash;—比如發(fā)行——加入到Android的開發(fā)環(huán)境。例如,你可以使用Google的云快速將你的應(yīng)用發(fā)布到外國市場。Android Studio將不會(huì)孤軍作戰(zhàn),它將有Google云的強(qiáng)大支撐。
這僅僅是Google對Android Studio今后發(fā)展設(shè)想的一項(xiàng)聲稱,Google認(rèn)為Android Studio今后不單只是一個(gè)簡單的IDE,而且越來越多會(huì)變?yōu)橐粋€(gè)門戶并跟云端整合的開發(fā)生態(tài)系統(tǒng),beta測試者將很容易獲得其代碼,并且任何人都可以去創(chuàng)建。就目前而言,Android Studio在桌面端已經(jīng)是功能十分強(qiáng)大的IDE。