Windows下载Android源代码

Windows下载Android源代码

下载msysgit,安装

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

 

打开Git Bash,运行命令

cd D:

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

 <span>Windows下载Android源代码</span>

输入命令,切换到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)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119107.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Master page_enableeventvalidation「建议收藏」

    Master page_enableeventvalidation「建议收藏」Masterpage/contentpagepostbackproblemHi,Ihavethefollowingscenario:Iamusingamasterpage(masterpage.master)whichcontainsatextboxandtwoImagebuttonsasservercontrols.Itriedsom

    2022年7月24日
    7
  • 程序员的生存法则_程序员的一生

    程序员的生存法则_程序员的一生前几天,和国内某知名企业的行销一线喝茶聊天,他一直在抱怨自己的上司很差劲,一直允诺追加奖金,但是月底考评结果却给的很差,奖金也没别人的多,所以他想调别的部门。我很是惊诧,这公司是你们家开的?怎么可以想调就调?他笑了笑说,你不懂职场生存法则吗?    他的工作需要经常出差,全国各地跑。上次是去江西,他知道部门A的老大老家在江西,就主动去找A部门老大,告之有个出差机会,要不要一起?后来我才明白“要不

    2022年10月7日
    2
  • Prometheus monitor RabbitMQ

    Prometheus monitor RabbitMQ

    2021年7月3日
    129
  • 机器学习之K均值聚类

    K均值聚类思想  聚类的核心概念是相似度或距离,有很多相似度或距离的方法,比如欧式距离、马氏距离、相关系数、余弦定理、层次聚类和K均值聚类等  K均值聚类的

    2021年12月30日
    33
  • MySQL读写分离的原理

    MySQL读写分离的原理1.为什么要实现MySQL的读写分离?因为实际上大多是互联网公司,一些网站或者是app,其实都是读多写少,所以针对这个情况,就是写请求是一个主库,但是主库挂多个从库,然后从多个从库来读,这样可以提高MySQL的并发。2.如何实现MySQL的读写分离?就是基于主从复制架构,简单就是之搞一个主库,然后主库挂多个从库,我们单单只是写主库,然后主库会自动把数据给同步到从库上去。…

    2022年5月4日
    40
  • Pycharm介绍_怎么用pycharm

    Pycharm介绍_怎么用pycharm一.开发环境介绍每一个项目可能有不同的开发环境,而为了解决这一冲突,pycharm采用了两种环境设置方式:一个是虚拟环境方式:也就是每一个项目配置一个环境,在项目中为venv文件夹创建项目时意味着每一个项目都copy一份新的开发环境,而彼此之间相互独立还有一种方式为采用公用的一个开发环境,常用于各项目之间不会互相影响的情况二.pycharm快捷键Ctrl+Alt+L注释Ctrl+/行注释Ctrl+Alt+L代码格式化Ctrl+D复制当前行三.注释

    2025年7月24日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号