• Windows下载Android源代码


    下载msysgit,安装

    官方下载:http://code.google.com/p/msysgit/downloads/list

     

    打开Git Bash,运行命令

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

     

    输入命令,切换到manifest文件夹

    cd manifest

    git tag 列出android各个分支版本号

    git tag

    下载android-2.2系统源代码,输入以下命令,假设要下载其它版本号源代码,checkout git tag列出的版本号号就可以

    git checkout android-2.2_r1

    checkout之后,manifest/default.xml文件里记录的就是android2.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源代码下载到本地

     

    <project path="bionic" name="platform/bionic" />

     

    Android源代码中project非常多,一个一个下载比較麻烦,本人写了一个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)

  • 相关阅读:
    实例属性的读取与设置
    淘宝ued
    反射发出动态类型(下)
    iOS多线程的初步研究3
    C# 自动提交到百度ping服务
    .NET自带IOC
    Entity Framework返回IEnumerable还是IQueryable?
    ASP.NET MVC4简单使用ELMAH记录系统日志
    ASP.NET基础之HttpModule学习
    【Linux】Shell学习笔记之四——文件和目录管理(硬连接和软连接)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3884759.html
Copyright © 2020-2023  润新知