zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    洛谷P1455 搭配购买(并查集)
    洛谷 P2078 朋友(并查集)
    TheZealous的集训日常之 离线算法与在线算法区别
    综合练习: Python自动化测试--从Excel读取数据并录入mysql
    读取excel/CSV/json数据
    Python 日志
    python 操作数据库
    python requests 接口: 调用百度开发者平台图片文字识别接口
    接口测试理论 2
    接口测试理论 1
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3884759.html
Copyright © 2011-2022 走看看