在開發Android 的 程式員中,應該說使用Eclipse或者Netbean的是最多的。考慮到Google推出了一整套開發外掛程式,讓使用者從項目到寫代碼到編譯運行連結模擬器 一氣呵成,用Eclipse這樣的IDE無可厚非。不過,總有一些使用者不喜歡IDE,不想用類似於Eclipse的方式開發,他們的想法包括
- 任何編輯器都比不上vim/emacs
- 我電腦太慢,不想跑IDE
- 純命令列形式,我就喜歡,每天打10000個命令我也喜歡,反正我選擇,我喜歡
^_^
而本文 , 就是為這部分使用者而寫。其實對於Google這樣的Linux氣氛濃厚的公司,它本身提供的命令列工具就已經足夠你脫離IDE了,就是編輯上,很多 Eclipse優秀的功能都沒有。但是,配合本文介紹的eclim,你會發現,你把Eclipse嵌進了vim中!現在,建立項目之後,從編輯原始碼到編 譯到管理項目最後到安裝程式到模擬器,所有任務都可以在一個vim裡面完成 ,我們真正把vim當成了IDE!
註:我不是一個Cmd盲目愛好者,在我看來,如果真的想開發Android應用而非小打小鬧,那麼IDE還是有點用處的:
- 當你項目很大,要管理的東西很多時。用Vim開發任何語言的程式都會面臨scalable的問題
- 當你硬著頭皮找bug時。DDMS配合Eclipse確實比其他方式都要方便得多。
所以我自己是Cmd加IDE配合著用
實現本文所講述內容的關鍵,就是eclim這個開源軟體。你可以從{
pageTracker._trackPageview('a/eclim.sourceforge.net');
}" href="http://eclim.sourceforge.net/eclimd.html">eclim官方網站 瞭解並下載。接下來,就針對eclim來講解具體的安裝使用步驟。
安裝
安裝之前要確認,你的系統有
- JDK1.5或者更高
- Eclipse 3.5.x
- vim 7.1.x,並且vimrc裡面要set nocompatible並開啟filetype plugin on
首先下載,我們可以從下載頁面看到,有三種包,exe是windows的,tar.gz是源碼,sh是Linux/Mac下安裝指令碼。由於源碼包需要有Ant來配置安裝,還得花心思去看版本對不對,所以我們可以直接下載sh檔案來安裝。
下載sh檔案後,執行,會彈出安裝的圖形介面,一路next即可。注意,請事先備份你的~/.vim目錄下的所有原有外掛程式,因為eclim預設是覆蓋安裝外掛程式到這個目錄下的。你可以安裝之後再把備份的原有外掛程式copy回去即可。
好,假設我們已經安裝完成了,怎麼用eclimd呢?eclimd有兩種最方面的模式,一種是在eclipse裡面用vim,一種是在vim裡面享受eclipse的功能。這裡主要說一說以vim/gvim為主環境的配置。
首先,eclim和其他很多程式一樣,有一個daemon精靈,所以每次想使用的時候,都必須把這個daemon精靈開啟。開啟這個程式靠 eclimd這個指令碼,通常都在你的~/.eclipse/xxxxxx目錄下,具體在哪裡取決於你安裝時候指定的eclipse設定檔目錄。如果是在 忘了,用
find /home -name eclimd 2>/dev/null
找。一旦找到,建議把路徑加到path裡面去,然後將這個命令設定為開機啟動,如果你會經常用的話。
好,現在daemon程式跑起來了,開啟vim,用命令
:PingEclim
如果一切正常,則會出現eclim以及eclipse的版本號碼。否則,則可能是daemon運作不正常。
使用
好,假設到這裡,一切都正常,我們就開始用eclim來進行Android工程了。下面的內容,就是今天要說的核心部分。
eclim本身支援五種工程的建立,c/c++, java, php, python, ruby,工程建立方法請參見官方網頁的說明。但是,我們這裡並不用eclim本身來建立工程。因為Android SDK本身已經提供這個功能了,而且SDK建立出的工程才有那一套檔案個目錄。記住,我們用eclim是為了給Android開發提供便捷的,所以整體流 程還是走Android那套。所以,我們還是先建立project
Android create project -n test –activity demo –package cn.forwind.myproject –target 3 –path ./myproject
這樣就在本地目錄下建立了工程目錄myproject。你進去之後用la命令就會發現,這本質上不是一個eclipse的java工程,因為沒 有.project和.classpath兩個檔案。而eclim本質上是遵循eclipse規範的,怎麼辦呢?沒關係,我們可以這樣做。到 myproject目錄的上一層目錄,開啟vim,輸入
:ProjectCreate ./myproject -n java
什麼意思呢?就是說我們要在./myproject目錄下建立一個java對應的eclipse工程。而./myproject目錄已經有 Android所建立的所有檔案了,所以這時,雙方需要的檔案就都有了。用la看看,現在是不是又有.project又有.classpath了?而且 src目錄也被自動加進classpath了!
註:似乎現在eclim還有一個bug,就是建立project的時候path不能太深,超過5層就error了。我用的 解決方案是把包含project的目錄放在home目錄下,保證路徑不會很深。你也可以通過eclipse讀取一次這個Android工程,它就會自動幫 你建立.project和.classpath。也不麻煩,因為對一個project只需要做一次即可。
好,現在我們就把新project建立好了,接下來建立一個avd
Android create avd -n forwind.cn
這樣,該做的準備工作就完成了。現在進入myproject目錄,開啟vim。
首先在vim裡面用
:ProjectList
命令,確認一下,myproject這個project是被認出來了的。好,我們現在試著運行
:ProjectTree myproject
看看,是不是左邊出現了整個project的層級架構?怎麼操作,我相信所有的vimer都應該會,就不講解了。你還可以把這個命令定義成快速鍵,後面不用加project名稱,因為預設開啟當前project的樹狀圖。
你還可以用
:ProjectsTree
來開啟所有的Project的樹狀圖。如果想開啟一個檔案,就自動開啟對應的project的樹狀圖,就在你的vimrc檔案裡面添加這麼一句
let g:EclimProjectTreeAutoOpen=1
有朋友會有問題了,如果我想開啟樹狀圖裡面的另一個檔案,那不是把當前檔案覆蓋了?當然用慣了buffer操作的朋友會覺得無所謂,但是也有不少朋友是tab操作的,這時,你可以把游標移到你想開啟的檔案上,按一下T,大寫的,檔案就會自動在另一個tab中開啟了。好,接下來看看在編輯的過程中,除了vim自己的優勢,eclim還給了我們什麼好玩的東西。首先,你不用擔心代碼風格的問題了,比如大括弧之類的,你完全可以按照自己的風格寫,寫完了一個命令
:%JavaFormat
就可以自動講檔案排版成你eclipse設定的java代碼風格。這樣,只需要在eclipse裡面設定好團隊統一的風格,寫的時候就不用擔心。這個功能等同於Eclipse裡面的<C-S-F>。其次,eclim有比較初級的代碼檢查功能,相當於Eclipse的quick fix。首先,你在寫完一個來源程式代碼後,用命令
:Validate
就可以讓eclim幫你檢查可能有錯的行,並會用雙左向箭頭標註出來然後你把游標移到該行,用命令
:JavaCorrect
就可以讓eclim給你修改建議。當然你也可以自己直接修改。
最後再介紹一下大家都會很關心的代碼補全。eclim的代碼補全,用的是相當標準的Vim補全方法,快速鍵就是 ”Ctrl x Ctrl u”。我們都知道U表示user define。效果如何呢?看看下面這張:)
{
pageTracker._trackPageview('a/2.bp.blogspot.com');
}" rel="lightbox" href="http://2.bp.blogspot.com/_W6UcJjyXr24/Sh_JM6CRU5I/AAAAAAAAC28/oMAEGqUZpKA/s1600-h/eclim-demo.png" onblur="function onblur()
{
try {parent.deselectBloggerImageGracefully();} catch(e) {}
}">
我用過Vim不少代碼補全外掛程式,有針對語言的,有通用的。應該是eclim是我用過對Java語言支援最好的。當然前面介紹過了,eclim對其他語言也有很好的支援,有興趣的朋友去官網看看。
好,代碼編輯部分就介紹到這裡。應該說,eclim的功能實在太多了,大多數eclipse能有的,你都能在eclim裡面找到。我這裡就不繼續介紹了,喜歡這個玩意的朋友,可以去看看這張{
pageTracker._trackPageview('a/eclim.sourceforge.net');
}" href="http://eclim.sourceforge.net/vim/cheatsheet.html" target="_blank">cheatsheet ,常用功能就基本包括完了。
那麼編輯完代碼,接下來幹嘛呢?去emulator上測試啊。首先你要開啟剛才建立的avd
emulator -avn AVD_NAME
然後編譯安裝。在Android SDK中,你可以用ant debug來編譯debug版本的程式,然後adb install name.apk 安裝,也可以用ant install安裝。而eclim牛逼之處在於,它內建支援ant!也就是說,你在vim裡面把代碼寫完,根本不用推出,直接一個ant install,就可以在模擬器裡面看效果了。而且,ant對應的build.xml,你也可以直接編輯,eclim同樣提供了代碼補全和檢查基本文法的 功能!
怎麼樣,看見上面的介紹,有沒有一點心動啊?再說一遍,eclim真的是一個很牛逼的工具,建議所有有興趣用它的人,都去官網上自習讀document,保證你會發現,你越來越不需要eclipse了。(除了調試:P)。
最後說一下,eclim還支援單獨的設定檔,你可以在home目錄下建一個~/.eclimrc,性質就和.gvimrc一樣的。
最後的最後,恩,我沒有介紹用eclim編輯介面XML,因為我用DroidDraw來畫介面。不過你習慣了文本編輯的話,其實道理是一樣的。