Как скачать исходный код google для 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 

Однако в моей машине я не могу «перезагрузить init» в Git Bash, потому что он говорит, что у него нет python. У меня установлен python, но git bash его не распознает. Обратите внимание, что я также установил каталог python на системный путь. Если кто-нибудь может дать отзыв, я был бы признателен. благодаря

UPDATE: Я считаю, что это проблема с новой версией Git Bash для Windows. Системный путь вообще не применяется к Git Bash – я мог бы легко проверить, работал ли системный путь с командной строкой. Во всяком случае, я попробовал это вместо этого, и он, конечно, бежал с ошибкой.

  /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 

ОК. Я передал эту ошибку, установив pyreadline в windows:

  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 

Solutions Collecting From Web of "Как скачать исходный код google для Android"

Одним щелчком мыши загрузите последний код в виде файла .tar.gz , https://android.googlesource.com/platform/frameworks/base/+archive/master.tar.gz , андроид можно найти в core папке

редактировать
Альтернатива здесь:
http://grepcode.com/project/repository.grepcode.com/java/ext/com.google.android/android/

Просто выберите версию, а затем параметры загрузки внутри.

Если вы рассматриваете, например, эту другую программу «sympy», которая также нуждается в git bash и python, это только вопрос, чтобы добавить python к вашему PATH до запуска сеанса git bash.

Установить Python с:

http://python.org/download/

Загрузив «Python 2.7 Windows installer» (или Python 2.6 или 2.5) и запустив его.
Добавить каталог python в переменную пути к вашей системе
( My Computer -> Advanced -> Environment Variables -> Path -> Edit ).

Обратите внимание, что сам сценарий репо должен находиться на пути, как указано на странице управления версиями android:

Repo – это инструмент управления репозиториями, который мы построили поверх Git. Repo унифицирует множество репозиториев Git, когда это необходимо, загружает их в нашу систему контроля версий и автоматизирует части рабочего процесса разработки Android.
Repo не предназначен для замены Git, только для упрощения работы с Git в контексте Android.
Команда repo представляет собой исполняемый скрипт Python, который можно поместить в любом месте вашего пути .

В этом ответе объясняется, как исправить эту ошибку:

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

Резюме: Я наконец использовал python упакованный Cygwin.
Подробности: Ниже приводится полная история.

Совет от отслеживания ошибок repo заключается в том, чтобы добавить '/c/app/Python27/python ' :

  • Строка 136 в v1.20
    REPO_MAIN = '/c/app/Python27/python ' + S_repo + '/main.py'
  • Строка 735 в v1.20 (начало функции 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'
  • Line 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, включая его пакеты python и git : он преуспел как прелесть.

Но, поскольку символические ссылки, имитируемые Cygwin, не распознаются MSysGit, мы должны использовать Cygwin git . И графические интерфейсы поверх git не полностью совместимы с Cygwin git

(См. Также мой другой пост )

Редактировать:
Cygwin может использовать собственные символические CYGWIN=winsymlinks:native NTFS (просто установите CYGWIN=winsymlinks:native и be Admin). Поэтому MSysGit можно использовать и любой другой графический интерфейс, основанный на нем 🙂