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线程编译