<!-- @page { margin: 2cm } PRE { font-family: "AR PL UMing HK" } P { margin-bottom: 0.21cm } -->
************************************* 1.安装repo前的准备: ************************************* $ sudo apt-get install git-core gnupg (gnupg实际已自带) $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl $ sudo apt-get install zlib1g-dev $ sudo apt-get install valgrind (可选,有21M大,我觉得一般人是用不到的) $ sudo apt-get install python2.5 (实际上不用装,Ubuntu 8.10已经自带) $ sudo apt-get install sun-java5-jdk 注意,不要用 sun-java6-jdk, 不然在make sdk,具体来说是make doc这一步中,遇到这个错误: Docs droiddoc: out/target/common/docs/dx javadoc: error - In doclet class DroidDoc, method start has thrown an exception java.lang.reflect.InvocationTargetException com.sun.tools.javac.code.Symbol$CompletionFailure: class file for sun.util.resources.OpenListResourceBundle not found2. 下载repo脚本,放到/bin目录下,加上可执行权限 |||||||对于公司的机器直接运行如下命令即可:(针对Ubuntu Linux (32-bit x86))|||||||| $ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev Required Packages: Git 1.5.4 or newer and the GNU Privacy Guard. JDK 5.0, update 12 or higher. Java 6 is not supported, because of incompatibilities with @Override. flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl. You might also want Valgrind, a tool that will help you find memory leaks, stack corruption, array bounds overflows, etc. $ sudo apt-get install valgrind Intrepid (8.10) users may need a newer version of libreadline: $ sudo apt-get install lib32readline5-dev ******************************************* 2.安装repo: ******************************************* $ cd ~ $ mkdir bin //在主目录下新建一个bin文件夹 $ echo $PATH //查看环境变量 $ curl http://android.git.kernel.org/repo >~/bin/repo //下载repo $ chmod a+x ~/bin/repo 更改PATH: $ mv ~/repo /bin *************************************** 3.代理设置. *************************************** 因为在公司需要用到代理才能连接外网.所以repo命令也要用到代理设置.具体如下. 因为git的代理是借助其他软件实现的.我们需要下载一个connet.c编译,在新建一个proxy文件。 (1)下载conect.c 下载地址:http://www.newbupt.org/wForum/disparticle.php?boardName=Linux&ID=20184,下载附件内容 (2)gcc -o connect connect.c //编译成目标文件 mv connect ~/bin //移动到~/bin (3)设置一个wrapper echo "/home/liu/bin/connect -H http://10.99.60.201:8080 $@" >> ~/bin/proxy //注意不要漏掉$@ chmod +x ~/bin/proxy (4)完成之后记得执行一下 proxy啊。方法:“. Proxy” ****** proxy的写法还有一个版本,我就是用的这个版本调通的。 1..在目录下/home/liu/bin下新建一个proxy.sh 的文件,内容如下: #!/bin/sh # /home/proxy.sh # http proxy setting export HTTP_PROXY=10.99.60.201:8080 export http_proxy=$HTTP_PROXY # set git to use ssh over http proxy export GIT_SSH="/home/liu/bin/socks-ssh.sh" export GIT_PROXY_COMMAND="/home/liu/bin/socks-gw.sh" 2.在目录下/home/liu/bin下新建一个socks-ssh.sh文件,内容如下: #!/bin/sh # /home/liu/bin/socks-ssh.sh ssh -o ProxyCommand="/home/liu/bin/socks-gw.sh %h %p" $@ 3.在目录下/home/liu/bin下新建一个socks-gw.sh文件.内容如下. #!/bin/sh # /home/liu/bin/socks-gw.sh # This script connects to a HTTP proxy using connect.c connect -H 10.99.60.201:8080 $@ 注意:不要忘记执行一下“. proxy”(中间有空格) ******** **************************************** 4.准备完成,开始下载源代码: **************************************** $ mkdir myandroid //新建一个存取代码的文件夹 $ cd myandroid //进入此文件夹 在myandroid目录中执行 $ repo init -u git://android.git.kernel.org/platform/manifest.git 中间会提示输入电子邮件什么的,如果你打算要提交patch的话,用google accounts注册过的邮箱 在myandroid中执行 repo sync就可以开始下载源码了 $ repo sync 下载源代码说明: 如果想拿某个branch而不是主线上的代码,我们需要用-b参数制定branch名字,-m参数制定manifest的名字,比如: $ repo init -u git://codeaurora.org/platform/manifest.git -b [branch] -m [manifest] //设置要同步的目录,地址 $ repo sync //开始同步源代码,即开始下载 例如: $ repo init -u git://android.git.kernel.org/platform/manifest.git -b donut -m Q8650BSDCANLYA3170.xml $ repo sync 但是这一步非常慢,这里有些文档中没有的技巧了: repo 的使用请看repo help。如果只是要学习源码的话,那只用repo sync一个命令就行。repo sync不带参数的话会更新所有子项目,可以repo sync project_path来指定更新项目。 那么project_path在哪可以找到呢?myandroid/.repo/manifests/default.xml (你至少需要先repo init过才有这些东西)