如何下载Android的谷歌源代码

如您所知, https://android.googlesource.com/中有数百个项目的列表。 我想在Windows机器中下载它们。 根据Google的文件,

To install, initialize, and configure Repo: $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo To clone the entire platform, install repo, and run: mkdir mydroid cd mydroid repo init -u https://android.googlesource.com/platform/manifest repo sync 

然而,在我的机器上,我不能在Git Bash中“repo init”,因为它说它没有python。 我有python安装,但混帐bash不承认它。 请注意,我也将python目录设置为系统path。 如果有人可以给小费,我将不胜感激。 谢谢

更新:我相信这是新版本的Git Bash for Windows的问题。 系统path不适用于Git Bash – 我可以很容易地testing系统path是否与命令提示符一起工作。 无论如何,我试了这个,而它实际上运行错误,当然。

  /c/python27/python.exe ../bin/repo init -u https://android.googlesource.com/platform/manifest 

错误消息是

  $ /c/python27/python.exe ../bin/repo init -u https://android.googlesource.com/platform/manifest Traceback (most recent call last): File "../bin/repo", line 91, in <module> import readline ImportError: No module named readline 

好。 我通过在Windows安装pyreadline来传递这个错误:

  easy_install pyreadline 

如果出现错误,则必须从中安装setuptools

  http://pypi.python.org/pypi/setuptools#files 

终于再次运行命令得到这个:

 $ repo init -u https://android.googlesource.com/platform/manifest fatal: unable to start d:\mywork\dev\GoogleAndroid\working_dir\.repo\repo/main.py fatal: [Errno 8] Exec format error 

只需一次点击 ,下载最新的代码为.tar.gz文件,从这里https://android.googlesource.com/platform/frameworks/base/+archive/master.tar.gz ,可以在core文件夹下找到android

编辑
在此选择:
http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/

只需选择版本,然后选择一个下载选项。

例如,如果你考虑这个其他程序“sympy” ,它也需要git bash和python,那么启动git bash会话之前 ,只需要在你的PATH中添加python即可。

安装Python:

http://python.org/download/

通过下载“Python 2.7 Windows安装程序”(或Python 2.6或2.5)并运行它。
将python目录添加到您的系统环境路径变量
My Computer -> Advanced -> Environment Variables -> Path -> Edit )。

请注意,repo脚本本身必须位于路径中,如android的“ 版本控制”页面中所述:

Repo是我们在Git之上构建的一个存储库管理工具。 在必要时,Repo统一了许多Git仓库,上传到我们的版本控制系统,并自动完成了部分Android开发工作流程。
回购并不意味着要取代Git,只是为了更容易在Android上下文中使用Git。
repo命令是一个可执行的Python脚本,可以放在路径的任何位置

这个答案解释了如何解决这个错误:

 fatal: unable to start c:\path\.repo\repo/main.py fatal: [Errno 8] Exec format error 

总结:我最终使用了Cygwin打包的python
详情:以下是全文。

repo bug跟踪的提示是添加'/c/app/Python27/python '

  • 第1.20行中的第136行
    REPO_MAIN = '/c/app/Python27/python ' + S_repo + '/main.py'
  • v1.20中的第735行(函数main开始)
    wrapper_path = '/c/app/Python27/python ' + os.path.abspath(__file__)

但是我们得到错误TypeError: coercing to Unicode: need string or buffer, NoneType found

因此,我恢复了上面的这些更改并执行了下面的其他更改(在版本1.20上):

  • 第136行,用双斜杠代替单斜杠:
    REPO_MAIN = S_repo + '\\main.py'
  • 第766行,添加了python绝对路径作为me第一个元素:
    me = ['C:\\app\\Python27\\python.exe', repo_main,
    '--repo-dir=%s' % rel_repo_dir,
    '--wrapper-version=%s' % ver_str,
    '--wrapper-path=%s' % wrapper_path,
    '--']
  • 第776行,用os.execv(repo_main, me)替换
    os.execv('C:\\app\\Python27\\python.exe', me)

但是我们仍然有一个错误:

 $ Traceback (most recent call last): File "c:\path\.repo\repo\main.py", line 39, in <module> from subcmds.version import Version File "c:\path\.repo\repo\subcmds\__init__.py", line 36, in <module> ['%s' % name]) File "c:\path\.repo\repo\subcmds\forall.py", line 17, in <module> import fcntl ImportError: No module named fcntl 

Python v2.7 fcntl文档说fcntl只能用于平台Unix。

我终于恢复了所有repo脚本的变化,并安装了Cygwin,包括它的pythongit包:它成功的魅力。

但是,由于Cygwin模拟的符号链接没有被MSysGit识别,我们必须使用Cygwin git 而在git之上的图形用户界面并不完全符合Cygwin git

(另见我的另一篇文章 )

编辑:
Cygwin可以使用本机NTFS符号链接 (只需设置CYGWIN=winsymlinks:native并且是Admin)。 因此可以使用MSysGit和任何基于它的其他GUI 🙂