在开发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这个开源软件。你可以从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,用命令
ingEclim
如果一切正常,则会出现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,输入
rojectCreate ./myproject -n java
什么意思呢?就是说我们要在./myproject目录下建立一个java对应的eclipse工程。而./myproject目录已经有Android所建立的所有文件了,所以这时,双方需要的文件就都有了。用la看看,现在是不是又有.project又有.classpath了?而且src目录也被自动加进classpath了!