目录

ubuntu12.04下载android源码

目录

具体可以参考官方资料:http://source.android.com/source/downloading.html很详细了。这里我也根据自己实际操作作一些记录。以免以后忘记。

需要环境: In general you will need:

Python 2.5 — 2.7, which you can download from python.org.

GNU Make 3.81 — 3.82, which you can download from gnu.org,

JDK 6 if you wish to build Gingerbread or newer;

JDK 5 for Froyo or older. You can download both from java.sun.com.

Git 1.7 or newer. You can find it at git-scm.com.

ubuntu已经自带了python2.7,大家可以在终端输入

python -V   //查看python版本

我的是python2.7.3 需要先安装一些工具:

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so //提示已存在的话不用理会

然后是JDK环境,因为系统自带的是openjdk,所以我们需要自己安装,我安装的是JDK6,具体操作有我之前一篇文章,http://www.ithome.me/archives/127.html

然后通过下面的一些命令查看环境;

git --version
make --version
gcc --version
g++ --version

分别查看这几个工具的版本,make应该是3.81或者3.82 gcc和g++应该是4.4版,如果是4.6,需要更改为4.4。操作方法;

sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
cd /usr/bin
ls -l gcc*
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc
ls -l g++*
sudo mv g++ g++.bak
sudo ln -s g++-4.4 g++
gcc -v
g++ -v

如果都没有问题就可以进行下面的操作了:

为了以防万一,这里还需要一步操作: 登陆https://android.googlesource.com/new-password会提示授权,允许,之后会获得一串用户名和密码,复制下面方框内的内容,也就是machine开头的那些,然后执行:

sudo vim ~/.netrc 或者 sudo vi ~/.netrc

把刚才复制的内容粘贴进去,保存。

OK,首先需要创建repo文件的下载路径:我放在了android_source目录下: 那么我的操作就是:

$ mkdir ~/android_source
$ PATH=~/android_source:$PATH

需要注意的是PATH=~/android_source:$PATH这句代码,是设置临时环境变量的,如果当前终端窗口关闭后新开的终端想要执行repo命令,需要重新执行一次这句代码。 然后CD到android_source

cd ~/android_source

下载repo文件

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/android_source/repo
$ sudo chmod a+x ~/android_source/repo

上面的android_source根据自己的路径更改

如果一切正常,就可以开始下载android源码了。首先CD到你要放源码的目录,我仍然放在android_source里面.然后执行:

$ repo init -u https://android.googlesource.com/platform/manifest

初始化repo.这里要注意的是初始化后会在当前目录生成一个.repo文件夹,之后代码就会下载到当前目录下,也就是说,你初始化时的目录是哪个,代码就会下载到那里。如果初始化错了,想重新换个目录,只需要删除.repo目录。这是一个隐藏的目录。

初始化成功就可以下载了,执行命令;

repo sync

repo支持断点续传,按ctrl+z可以中断,下次重新执行repo sync可以继续下载。不过我试过,如果可以尽量一次下载完,断点有风险。可能会有文件漏下。

下载完成后编译方法:

$ source build/envsetup.sh
$lunch full-eng
$make -j4  //4线程编译