zoukankan      html  css  js  c++  java
  • 转:Windows下载Android源码

    原文来自于:http://blog.csdn.net/hlf48641715/article/details/7188450

    下载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 pathrootdir = "D:/android-source"
    
    #git program pathgit = "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)
  • 相关阅读:
    Thinkphp5 对接百度云对象存储 BOS (上传、删除)
    php 删除富文本编辑器保存内容中的其他代码(保留中文)
    ffmreg thinkphp 控制器 获取音频视频详细信息(获取时长)
    selenium+testng+java+poi进行excel的数据参数化
    linux中磁盘配额管理
    linux中挂载和卸载文件系统
    linux中vi编辑器的练习
    Linux基础命令
    Nginx流量复制
    Python脚本
  • 原文地址:https://www.cnblogs.com/guoyongrong/p/3555448.html
Copyright © 2011-2022 走看看