WindowsでAndroidソースをダウンロード

5618 ワード

msysgitのダウンロード、インストール
公式ダウンロード:http://code.google.com/p/msysgit/downloads/list
 
Git Bashを開き、コマンドを実行
cd D:

git clone https://android.googlesource.com/platform/manifest.git

  Windows下载Android源代码
コマンドを入力してmanifestフォルダに切り替えます
cd manifest

git tag androidの各ブランチバージョン番号をリスト
git tag

android-2.2システムのソースコードをダウンロードして、以下のコマンドを入力して、他のバージョン番号のソースコードをダウンロードすると仮定して、checkout git tagのリストのバージョン番号でいいです
git checkout android-2.2_r1

checkoutの後、manifest/default.xmlファイルに記録されているのはandroid 2.2システムの各モジュールのパスです.
 
default.xmlファイルを分析してみましょう
bionicを例にとるとpath属性はbionicソースコードの相対経路を表し、androidソースコードがd:/android-sourceでbionicをダウンロードした後、d:/android-source/bionicフォルダに格納すべきである
name属性はbionicソースコードのライブラリ上のパスであり、完全なパスは:http://android.googlesource.com/platform/bionic.gitであり、ソースコードのダウンロードパスがあればgit cloneを実行してbionicソースコードをローカルにダウンロードすることができる.
 

 
Androidソースコードにはprojectが非常に多く、1つ1つダウンロードするのが面倒で、本人はpythonスクリプトを書いて、download-src.pyをダブルクリックしてこのスクリプトを実行して、androidの完全なソースコードをローカルにダウンロードすることができます.
PS:このスクリプトを実行する前提はgit checkoutが実行されていることです.ダウンロードするAndroidソースのバージョン番号を選択してください.manifestファイルがD:/manifest/default.xmlではないと仮定して、スクリプトを自分で変更してください.
 
download-src.pyソースコード:
import xml.dom.minidom
import os
from subprocess import call

#downloaded source path
rootdir = "D:/android-source"

#git program path
git = "D:/Program Files/Git/bin/git.exe"

dom = xml.dom.minidom.parse("D:/manifest/default.xml")
root = dom.documentElement

prefix = git + " clone https://android.googlesource.com/"
suffix = ".git"

if not os.path.exists(rootdir):
    os.mkdir(rootdir)

for node in root.getElementsByTagName("project"):
    os.chdir(rootdir)
    d = node.getAttribute("path")
    last = d.rfind("/")
    if last != -1:
        d = rootdir + "/" + d[:last]
        if not os.path.exists(d):
            os.makedirs(d)
        os.chdir(d)
    cmd = prefix + node.getAttribute("name") + suffix
    call(cmd)