告诉windows用户一个不好的消息,windows环境下没法编译android源码。用cygwin?不行,因为cygwin模拟的环境太简单,编译android源码需要好多工具,比如gnupg flex bison gperf libsdl-dev libesd0-dev …有的环境还需要wine。单纯的cygwin肯定是不能满足需要的。那么windows环境下怎么办呢?给你两个选择:第一装虚拟机,第二装双系统。那有没有其它选择?有!如果你丫有钱,再整台电脑,装个linux用来编android源码。 -  -
    第一步,安装linux。
    我不管你用了什么方法,虚拟机还是双系统,或者是又弄了台电脑,假设你已经装好linux了。建议为ubuntu。
    第二步,下载Android源码
    我们知道android的源码是用Git来管理的,因此要下到官方的代码就必须先装Git。
    ubuntu的自动下载真方便,输入行命令就自动下载安装好了。apt-get install git-core git-svn gitk git-gui git-email
    好,实验一下安装是不是成功。终端下输入git --version  是不是显示git版本了?
    那现在我们是不是可以开始下载源码了呢,慢着。我们知道android的源码实际上是有kernel、Dalvik、Bionic、prebuilt、build等多个Git项目组成。因此如果单纯用Git来下载的话,何其复杂?还好,Google为我们想到了这一点,他们为我们写了一个repo的python的脚本,让我们方便的下载源代码。
    那好,先把repo下载下来,curl https://android.git.kernel.org/repo  >~/repo (curl是一个linux下的网络工具,不知道的google it)。然后将repo赋予可执行权限,chmod a+x ~/repo。为了我们便于访问repo,可以把repo的路径加到PATH里,export PATH=$PATH:~/repo。 大功告成,repo现在可以用了。
    现在终于可以下载源码了。
    repo init -u git://android.git.kernel.org/platform/manifest.git  配置为下载主线代码
    repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake  如果不想下载主线代码,可以用该命令配置为下载cupcake等其他分支代码
    repo sync 根据上面初始化的repo配置文件下载代码
    如果单纯的下载某一个部分的代码,那就用不到repo了,只用Git命令就可以了。比如我要下载kernel/common,直接键入git clone git://android.git.kernel.org/kernel/common.git。
    好了,代码下载下来了,是不是可以编译他了?不行现在android编译需要的一些工具还没有装齐全。
    第三步,安装编译android的工具。
    安装android编译时需要用到的包:apt-get install gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
    有些平台编译是需要wine,那时你就可以安装wine:apt-get install wine。
    另外,android编译时,还需要编译java文件,因此jdk也是必不可少的。
    第四步,安装JDK。
    不要用openJDK了,现在ubuntu可以用sun的jdk了,只需要加入源就可以了。
    $ sudo vim /etc/apt/sources.list
    在sources.list后面增加如下源
    deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
    deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
    保存文件后执行$ sudo apt-get update
    好了,现在可以安装jdk了,$ sudo apt-get install sun-java5-jdk
    配置我们刚安装的JDK,$ sudo update-alternatives --config java
    安装结束后,将现在的环境选择为我们安装的JDK。$ sudo update-java-alternatives -s java-1.5.0-sun
   第五步,编译源码。
    源码也下了,工具也装了,终于可以编译源码了。
    到android源码目录下,首先配置一下,source build/envsetup.sh,一路回车吧,默认配置。(注意,这个配置是每次启动shell都要执行的,不然的话,模拟器打不开,也没法编译。)
    然后执行make,等待吧,第一次编译的过程是很漫长的。
    第六步,执行模拟器。
    cd out/host/linux-x86/bin/
    ./emulator
    模拟器启动成功,Enjoy it!