如何下载Android源码(window和Linux)

转载 2015年11月20日 09:21:52
文章参照来源:http://source.android.com/source/downloading.html
一、window平台
关于在window平台下载Android源码,网上一般使用的是直接用git来下载。
比如:
http://wenku.baidu.com/view/a4f5f922482fb4daa58d4bb5.html
http://hendyyou.iteye.com/blog/1147738
这种方式最严重的问题是,对源码只能分块(git块)进行下载,而且块数很多。关键是现在google似乎没有提供了Android源码git块的详细列表。至少从网上文章给的链接我已经无法找到了哦。
我这里介绍的是通过在window平台上安装cygwin来模拟Linux环境来下载Android源码。
1.1、安装cygiwn.
首先需要安装Cygwin,关于此的详细内容请参考cygwin安装详解》。
注意在安装Cygwin时,我们除了安装默认的组件,我们还需要安装bash, curl, git and python
1.2、添加path路径
编辑.bash_profile添加path路径。.bash_profile文件位于“%cygwin安装目录%\home\%用户%”这个目录。比如我的就是“D:\tools\cygwin\home\rohu
.bash_profile文件中追加一行
export PATH=~/bin:$PATH
如果你访问互联网需要代理的话,还需要加上一个句命令。
假设代理服务器为“127.0.0.2::8080”,则命令为:
export http_proxy=127.0.0.2:8080
1.3、安装repo
通过Cygwin菜单Cygwin Terminal进入shell命令行。
输入以下命令:
mkdir ~/bin
curl --insecure https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
如果在国内,需要代理才能出去。我在假设代理服务器为“127.0.0.2::8080
如果用代理的话,上面的命令就应该变为:
mkdir ~/bin
curl --insecure --proxy 127.0.0.2:8080 https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
到此repo脚本文件就安装好了。
1.4、配置git
shell命令行,输入以下命令:
git config --global http.sslverify "false"如果在国内,需要代理才能出去。如果用代理的话,还需要加上一个句命令。
假设代理服务器为“127.0.0.2::8080”,则命令为:
git config --global http.proxy "127.0.0.2:8080"
到此git就配置好了。
1.5、安装repo客服端
1.5.1、新建一个工作目录WORKING_DIRECTORY,切换到该目录,以便存放Android源码:
在shell命令行,输入以下命令:
$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY
15.2、Run repo init to bring down the latest version of Repo with all its most recent bug fixes. You must specify a URL for the manifest, which specifies where the various repositories included in the Android source will be placed within your working directory.
$ repo init -u https://android.googlesource.com/platform/manifest 

To check out a branch other than "master", specify it with -b:

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
1.5.3、When prompted, please configure Repo with your real name and email address. To use the Gerrit code-review tool, you will need an email address that is connected with a registered Google account. Make sure this is a live address at which you can receive messages. The name that you provide here will show up in attributions for your code submissions.在运行1.5.2的命令时,会弹出一个要求输入你的gmail邮箱的提示。最好输入有效的邮箱地址。
A successful initialization will end with a message stating that Repo is initialized in your working directory. Your client directory should now contain a .repo directory where files such as the manifest will be kept.
在repo完成初始化后,你再当前目录下,应该能看到一个".repo"目录,manifest等就在该目录下。
如果你在这步遇到gpg验证出错,抛异常。那么请修改~/bin/repo文件的第187行来跳过gpg验证。
如下:
    if _NeedSetupGnuPG():
      can_verify =False 
    else:
      can_verify = True
另外,我们可以通过在浏览器中输入https://android.googlesource.com/platform/manifest来获得各个版本对应的branch
由于访问这个地址很慢,我就把它的内容贴到了我博客上。具体请访问《Android发布版本所对应源码的branch
1.6、取得源码

To pull down files to your working directory from the repositories as specified in the default manifest, run

$ repo sync 

The Android source files will be located in your working directory under their project names. The initial sync operation will take an hour or more to complete. For more about repo sync and other Repo commands, see Version Control.

执行上面的命令,Android的源码就开始下载了,它将被下载到".repo"目录的"projects"目录下。
如果已经下载了Android源码,但是现在需要想更新,便可以直接使用repo sync同步到本地。
可能会出现如下错误:

$ repo sync
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 2), reused 6 (delta 2)
Unpacking objects: 100% (6/6), done.
From git://github.com/richi-chen/Pandaboard-ICS-repo
   3ea7f09..11ecd6d  master     -> origin/master
   534d620..5fa74f5  omapzoom   -> origin/omapzoom
error: .repo/manifests/: contains uncommitted changes

网友解决:
richi 大虾:
to recover any uncommitted change, you should use 'git stash' and 'git clean -f -d'
for example: if you find it say there are uncommitted changes in .repo/manifests, you shoud 'cd .repo/manifests' and then 'git stash', 'git clean -f -d'
1.7、下载kernel源码
执行以下命令
git clone https://android.googlesource.com/kernel/common.git
将在Android目录下看到一个common目录,得到的common里面看不到文件,只有.git目录
进入common再执行git branch -a得到
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/android-2.6.39
  remotes/origin/android-3.0
  remotes/origin/master
这时我们可以通过执行git checkout android-3.0得到kernel3.0源码同样,
同理同过执行git checkout android-2.6.39将得到kernel2.6.39源码
二、Linux平台
在Linux平台下载Android源码,就要轻松的得多了。cygiwn都不用装。但是如果你的系统上还没有curl, git and python的话请先安装它们。
2.1、添加path路径
编辑.bashrc添加path路径。.bashrc文件位于"/home/%用户%"这个目录
在.bashrc文件中追加一行
export PATH=~/bin:$PATH
在命令行执行以下命令:
source .bashrc
2.2、安装repo
请参照1.3
2.3、配置git
同1.4
2.4、安装repo客服端
同1.5
2.5、以匿名方式取得源码
同1.6
2.6、以授权方式取得代码
如果你需要向google提交对原生Android的修改。你就需要以授权方式取得代码。

By default, access to the Android source code is anonymous. To protect the servers against excessive usage, each IP address is associated with a quota.

When sharing an IP address with other users (e.g. when accessing the source repositories from beyond a NAT firewall), the quotas can trigger even for regular usage patterns (e.g. if many users sync new clients from the same IP address within a short period).

In that case, it is possible to use authenticated access, which then uses a separate quota for each user, regardless of the IP address.

The first step is to create a password from the password generator and to save it in ~/.netrc according to the instructions on that page.

The second step is to force authenticated access, by using the following manifest URI: https://android.googlesource.com/a/platform/manifest. Notice how the /a/directory prefix triggers mandatory authentication. You can convert an existing client to use mandatory authentication with the following command:

$ repo init -u https://android.googlesource.com/a/platform/manifest 
2.7、可能遇到的一些网络问题

When downloading from behind a proxy (which is common in some corporate environments), it might be necessary to explicitly specify the proxy that is then used by repo:

$ export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
 $ export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

More rarely, Linux clients experience connectivity issues, getting stuck in the middle of downloads (typically during "Receiving objects"). It has been reported that tweaking the settings of the TCP/IP stack and using non-parallel commands can improve the situation. You need root access to modify the TCP setting:

$ sudo sysctl -w net.ipv4.tcp_window_scaling=0 $ repo sync -j1
2.8、下载kernel源码
同1.7
结束!


举报

相关文章推荐

如何下载Android源码(window和Linux)

文章参照来源:http://source.android.com/source/downloading.html 一、window平台 关于在window平台下载Android源码,网上一般使用的...

如何下载android源码

1、Git的安装从http://git-scm.com/下载最新的git源码包:并解压:#tar -xjf git-1.6.3.3.tar.bz2编译并安装:#cd git-1.6.3.3#./con...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

如何下载Android源码

如何下载Android源码(window和Linux)   |字号 订阅 文章参照来源:http://source.android.com/source/downloading.html 一、...

Android源码(window下如何获取)

概要Android源码由Git进行管理,由于源码由众多的模块组成,每个模块又可能依赖许多第三方库,所以如果想要通过git链接一个个clone下来的话工作量将会非常大,所以Google用Python编写...

linux和windows平台下,如何下载android sdk的源代码

本文主要是介绍在linux和windows平台下,如何下载android sdk的源代码,注意是sdk的源代码,而不是android的所有源代码,同时介绍如何把sdk源代码加入到eclipse里,使a...

linux和windows平台下,如何下载android sdk的源代码

本文主要是介绍在linux和windows平台下,如何下载android sdk的源代码,注意是sdk的源代码,而不是android的所有源代码,同时介绍如何把sdk源代码加入到eclipse里,使a...

windows下如何下载android源码

在网上找了好久都没有找到如何批量下载,只是找到有位通过角本执行来进行下载的。 试了一下在我机器上运行有问题,所以索性自己搞了一个出来。 首先根据官方的说法要下载git,这个无论如何是要下载的。 ...

windows下如何下载android源码

在网上找了好久都没有找到如何批量下载,只是找到有位通过角本执行来进行下载的。 试了一下在我机器上运行有问题,所以索性自己搞了一个出来。 首先根据官方的说法要下载git,这个无论如何是要下载...

windows下如何下载android源码

在网上找了好久都没有找到如何批量下载,只是找到有位通过角本执行来进行下载的。 试了一下在我机器上运行有问题,所以索性自己搞了一个出来。 首先根据官方的说法要下载git,这个无论如何是要下载的。 ...

windows下如何下载android源码

在网上找了好久都没有找到如何批量下载,只是找到有位通过角本执行来进行下载的。 试了一下在我机器上运行有问题,所以索性自己搞了一个出来。 首先根据官方的说法要下载git,这个无论如何是要下载的。 ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)