為 Eclipse “難民”準備的 Android 和 IDEA

jopen 10年前發布 | 55K 次閱讀 Android IntelliJ IDEA

這個月早些時候,我用于編寫 Android 項目的環境由  Eclipse  變成了  IntelliJ IDEA 。總體來說,這體驗感棒極了,我更喜歡使用 IDEA 而不是 Eclipse 進行 Android 開發。而且現在  IntelliJ IDEA 11 EAP (Early Access)  已經有了可視化的 layout(布局) 窗口,幾乎沒有理由讓我再使用其它的工具編寫 Android 應用。我撰寫本文是為了幫助其它那些正在切換 IDE 的用戶。

為啥使用 IntelliJ IDEA 開發 Android?

無須再問 IDEA 是否是你心儀的 IDE,也無須再問公司是否強迫你使用它。但為了以防萬一(怕你還不是瘋狂粉絲),下面我要介紹一些 Android 方面的特性,正是這些特性讓我轉而使用它。

Find(查 找)功能(Alt+F7)知道 Android 的 XML 資源(字面意義指它們的內容)的存在,因此在項目資源當中的查找工作變得更加簡單。而且,我發現 IDEA 的搜索能力比 Eclipse 略顯智能化。下面的例子中,你可以看到我在 layout XML 文件中查找某個 widget ID 時所發生的狀況: 為 Eclipse “難民”準備的 Android 和 IDEA

圖01 IDEA 中查找的用法

由 于 IDEA 能夠識別 Android XML 資源,像 Rename(更名) (Shift+F6)這樣的重構動作將在 Java 代碼和 XML 中共同進行。你可以在 XML 文件中重命名某個 widget 的 ID 并更新 Java 代碼,也可以在 Java 代碼中進行重命名并更新 XML。下圖中,我正對 XML 中某個 widget ID 進行重命名。真不錯。一般情況下,我不會在注釋和字符串中進行搜索,因為這實在有點太過火了。

為 Eclipse “難民”準備的 Android 和 IDEA

圖02. 更名重構

在 Android 方面有一些特別的意圖,使 IDEA 開發之旅更加輕松。意圖就是在 Eclipse 中使用 Ctrl+1 激活的 quick-fixes(快速修復)。在 IDEA 中用的是 Alt+Enter 。例如,如果在代碼中引用了某個靜態字符串,那么應當可以將該字符串移動到 strings.xml 中讓它成為一種資源。將光標移動到該字符串,按下 Alt+Enter,接受所推薦的名稱,然后就可以繼續了。對于重構的 undo 操作,Ctrl+Z 也非常好用。IDEA 和 Eclipse 的一個重大差別就是對重構的支持。在 IDEA 中,無須編譯資源文件來讓重構生效。有一種很常見的情況是:有一份破損的文件,通過成對的自動更名或重構對它進行修補。

為 Eclipse “難民”準備的 Android 和 IDEA

圖03. 移動重構

最后一點,在 IDEA 11 版本之前,Elcipse Android 的一個殺手級特性是基于 XML 布局文件的可視化編輯器。個人而言,我不常使用拖放式的布局編輯工具,但我仍然認同不用重新編譯和部署就能立刻看到代碼所帶來變化這一特性的價值。 Eclipse 的該項功能曾經更好一些。但現在 IDEA 11 有了布局“Preview(預覽)”模式。對 XML 進行的修改立刻就能在預覽中看到更新。還可以快速更改 theme(主題),以橫屏或者豎屏模式進行預覽,切換到夜間模式,并選擇不同屏幕尺寸。如果確實需要可視化編輯器,Eclipse 是首選。否則,IDEA 的預覽功能就足夠了。IDEA 博客提供了更多信息
為 Eclipse “難民”準備的 Android 和 IDEA

圖04. 可視化預覽

讓我們開始 IDEA 之旅。

適應 IDEA

基 礎布局并非 IDEA 和 Eclipse 之間全部的差別。有一個主代碼窗口(下圖中的右側)、一個項目視圖(左上)和一個結構視圖(左下)。凡是在 Eclipse 能夠找到的窗口,基本上也能在 IDEA 中找到。開始熟悉 IDEA 的方法之一是閱讀我幾年前寫的 DZone IDEA RefCard。今天它仍然合用。我將圖片進行了高亮處理,以展示相關的細節。


為 Eclipse “難民”準備的 Android 和 IDEA


圖05. 項目視圖

在 任何時候都可以通過按下 Escape 鍵跳轉到代碼窗口,也可以通過 Shift+Escape 關閉任何打開的工具窗口。IDEA 所沒有的概念是 Perspective(視角)。也許你喜歡 Eclipse 的視角。也許你喜歡在啟動調試器時,代碼窗口縮小成為郵票大小的小窗口。誰知道呢,或許從某個角度來說,這也是有好處的。在此我很難贊同這種觀點,關于視 角我能想到的最佳詞匯是“討厭”。IDEA 所沒有的另一個概念是“Team Plugin(團隊插件)”。對于各種版本控制系統,很難用一個像“Team”這樣的詞來以某種方式進行抽象概括。相反,當你激活 Subversion 時,你就能使用 Subversion 的特性。Git 則使用 Git 特性。使用 Tools->Enable Version Control 菜單項可以激活版本控制系統。然后,通過快捷方式 Alt+9 調出版本 Version Control(版本控制)視圖。

運行、調試及 Android 工具

在 IDEA 中的運行和調試與 Eclipse 略有差別。可在屏幕上端的 Run/Debug(運行/調試)下拉菜單中管理“Run Configurations(運行配置)”。 


為 Eclipse “難民”準備的 Android 和 IDEA

圖06. 運行/調試配置

可 以創建臨時或者永久的運行配置。右鍵點擊某個測試并選擇 Run(運行)可創建一個臨時的運行配置。如果想反復運行該目標程序,將配置存為永久配置好了。如果你是 Maven 用戶,可以在 Maven 視圖中右鍵點擊某個目標并創建一個運行對象,即一個 run:jetty 目標。IDEA 對 Maven 的支持妙不可言,因此假如你是 Maven 用戶的話實在是幸運了。

兩 種產品之間,調試器的特性非常接近。通過點擊邊框(或者Ctrl+F8)可以設置斷點,選擇并點擊某個引用可以將其添加到 Watch 窗口。我注意到,Eclipse 用戶更喜歡激活或禁止斷點,而不是設置和刪除它們。如果這是你喜歡的方式,沒問題,可以通過按下 Ctrl+Shift+F8 來管理所有的斷點。同時,請注意下調試器中的 Logcat 標簽頁,那里將顯示 Android 的 Log 信息。如果是 Running(運行)而不是 Debugging (調試)程序,那么 Logcat 將輸出到底部工具條的 “Android Logcat” 視窗中。 

為 Eclipse “難民”準備的 Android 和 IDEA


圖07. 調試窗口

SDK 中所附帶的主要 Android 工具可以通過 Tools->Android 菜單來調用。通過這種方式,可以導出某個已經簽名的安裝包,并同時啟動 AVD 來管理仿真器和環境。如果需要像 “hierarchyviewer” 或 “monkeyrunner” 之類的 SDK 工具,就不得不從命令行自己啟動了。IDEA 也支持內建的 Android 測試,運行單元測試時,IDE 會提示選擇是進行 JUnit 測試還是 Android 測試。它會記住你的回答,因此如果選錯了,只需刪除運行配置從頭來過。它將再次提示。

管理 IDEA 項目

IDE 切換工作最困難的部分是 Project configuration (項目配置)和 Web Server COnfiguration (Web 服務器配置)。幸運的是,作為一份 Android 指南,我們無需涉及后者。但還是需要對項目進行一些設置工作的。首先了解一些術語。“Eclipse Workspace(工作空間)” 就是 “IDEA Project(項目)”“Eclipse Project(項目)” 就是 “IDEA Module(模塊)”。每個 Eclipse 工作空間由多個項目組成。每個 IDEA 項目由多個模塊組成。如果有 Eclipse 項目文件,那么 IDEA 能夠毫無困難地導入它們,這是入門的最便捷途徑。

通 過 File->Project Structure 菜單項可進行項目配置工作。還可以通過 Ctrl+Alt+Shift+S 快捷鍵打開該窗口,我將其稱為“Paw Mash”(掌摑),因為你必須將左手做成熊掌狀并搗擊鍵盤才能夠打開該窗口。在此,你可以指定源文件夾、SDK 版本和依賴性關系。如果在下拉列表中未選中任何項目 SDK,或者列表顯示錯誤,可以點擊左邊面板的 SDK 項并創建一個新的。

為 Eclipse “難民”準備的 Android 和 IDEA

圖08. 項目配置

通 過點擊左邊的 module 條目可以對模塊進行配置。此處可將某些文件夾標記為“源”或者“測試”。默認情況下,全新的 IDEA Android 項目沒有 "測試" 文件夾,因此必須添加該文件夾,并在此處將其標記為 Test Sources(測試源)。還可以通過點擊中間顯示的 Android 刻面來改變某些 Android 編譯器設置。

為 Eclipse “難民”準備的 Android 和 IDEA

圖09. 模塊配置

關閉窗口之前還有最后一件事情。如果正在編寫 JUnit 測試,那么需要將 JUnit 添加到項目依賴關系當中。如果只是通過 @Test 對某個方法進行標注,IDEA 將會提示將 junit.jar 添加到 classpath 當中。問題是 IDEA 將它添加為依賴關系的最后一項,這將導致測試失敗并顯示“java.lang.RuntimeException: Stub!”錯誤。調出該窗口,將 JUnit 提升到依賴關系列表的第一項。或者配置 Ivy/Maven/Whatever 為你自動完成這項操作。 

為 Eclipse “難民”準備的 Android 和 IDEA

圖10. 模塊依賴關系

那 是 Project Structure (項目結構)的快速導覽,讓我們前進到 Settings(設置)部分。Settings(設置)指的是與項目編譯無直接關聯的那些選項。包括像代碼風格、版本控制、插件等等內容。使用 File->Settings 或者“爪擊”技術點擊 Ctrl+Alt+S 打開 Settings 窗口。我將該快捷方式稱為“爪擊”,是因為必須將左手捏成鷹爪狀并沖擊鍵盤,通常 Settings 窗口會馬上打開。 當你這么做時,它會幫助釋放出一個強大的“Ka-KAW”。

這 里有成千上萬的設置項。最近我聽到一個建議:每個 IDE 的用戶都應當花上數個小時四處點擊設置頁面,我認為這著實是個好主意。如你知道自己要找什么卻無法找到,可以在左上的搜索框中輸入所要查找的詞匯,設置列 表將會動態地展示匹配條目的頁面。比如說,如果你想要顯示 line number(行號),那么輸入 Line 或者 Line Numbers 然后點擊所返回的頁面就行了。在這種情況下,所看到畫面中的高亮部分是由 IDEA 產生的,用于指出對應的設置。

為 Eclipse “難民”準備的 Android 和 IDEA

圖11. 設置配置

多 數情況下,要進行修改的是默認設置。Showing Line Numbers(顯示行數)在 Editor->Appearance 頁面中。改變 Tab 和 空格的設置的操作必須基于每個文件類型進行,可通過 Editor -> Code Style 頁面訪問該功能。默認情況下,IDEA 允許將光標移動到某個文本文件的最后一行之后,可在 Editor 頁面中將該特性關閉。版本控制是必須很好地進行配置的內容,該配置必須在 Version Control 頁面進行。IDEA 中的 GitHub integration(GitHub 整合) 是一流的,但是前提是必須有 Git 支持,稍后我會推薦 BitBucket 來建立免費、私有的 git 主機。一般情況下,我發現自己總是使用 IDE 來進行本地提交操作及管理修改列表,而后通過命令行執行推送。

來自:http://my.oschina.net/u/947024/blog/306069

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!