下载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)

Windows下载Android源代码的更多相关文章

  1. windows平台下载android源代码

    最近观看<android核心分析>,所以很多细节都没有详细看代码很难理解.请记住,印象不深.感觉是最好再一起去的源代码,返回下载android源代码,遇到了许多问题,最后开始下载.合并流程 ...

  2. (国内)完美下载android源代码(文章已经丢失)

    刚刚文章莫名其妙的丢了,我重写了一篇,http://blog.csdn.net/song19891121/article/details/50099857 我们在很多时候需要下载android源代码进 ...

  3. 在Mac OS X中下载Android源代码的一些经验

    首先说明.随着最近(2014年6月開始)GFW的升级.这个站点:http://www.android.com/ 已经不能正常訪问了,以下的这些操作均是在我连接VPN的时候进行的. 首先,须要做一些准备 ...

  4. 转:Windows下载Android源码

    原文来自于:http://blog.csdn.net/hlf48641715/article/details/7188450 下载msysgit,安装 官方下载:http://code.google. ...

  5. Mac下命令行下载android源代码并构建apk过程

    前提是java .sdk.ndk .cmake.gradle .gradlew都已经安装和配置好. 1.下载源码: git clone http://git-ma.xxxx.com.cn/xxxx/x ...

  6. 下载Android源代码编译错误总结

    错误1: prebuilts/sdk/api/18.txt:22055: error 9: Removed public method android.telephony.gsm.SmsMessage ...

  7. 1、android源代码下载与跟踪

     学习Android源代码的目的 理解Android API查找API(Activity.Content Provider等) 高级应用开发(ROM定制)  在不同平台下载Android源代码 W ...

  8. Android源代码下载方法具体解释

    作者:张星 相信非常多下载过内核的人都对这个非常熟悉 git clone git://android.git.kernel.org/kernel/common.git kernel 可是这是在曾经,如 ...

  9. Eclipse Android源代码新下载方法及关联

    一.下载Android源代码 Android源代码从4.0后就可以使用SDK Manager进行下载,打开SDK Manager就可以看到,已4.4为例: 关联Android源代码 但是老是提示下载失 ...

随机推荐

  1. excel用vlookup,lookup时查询数据需要排序

    如题,排出来的数据不对,之前没有是看清楚..所以记下来,日是后要小心点....

  2. POJ 1519 Digital Roots

    题意:求数根. 解法:一个数的数根就是mod9的值,0换成9,只是没想到给的是一个大数……只好先把每位都加起来再mod9…… 代码: #include<stdio.h> #include& ...

  3. Maximum Product Subarray JAVA实现

    题目描述: Find the contiguous subarray within an array (containing at least one number) which has the la ...

  4. C++11笔记

    __func__宏 __func__返回当前的函数名,也可以返回class和struct名. /*返回函数名hello*/ const char* hello() { return __func__; ...

  5. 常见设计模式的解析和实现(C++)之九—Decorator模式

    作用:动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator模式相比生成子类更为灵活. UML结构图: 抽象基类: 1)  Component :定义一个对象接口,可以为这个接口动态地 ...

  6. CentOS VPS创建pptpd VPN服务

    原文地址http://www.hi-vps.com/wiki/doku.php?id=xen_vps_centos6_install_pptpd CentOS VPS创建pptpd VPN服务 Xen ...

  7. 内核源码分析之tasklet(基于3.16-rc4)

    tasklet是在HI_SOFTIRQ和TASKLET_SOFTIRQ两个软中断的基础上实现的(它们是在同一个源文件中实现,由此可见它们的关系密切程度),它的数据结构和软中断比较相似,这篇博文将分析t ...

  8. Codevs No.2144 砝码称重2

    2016-05-31 22:01:16 题目链接: 砝码称重2 (Codevs No.2144) 题目大意: 给定N个砝码,求称出M的重量所需砝码最小个数 解法: 贪心 使砝码数量最小,当然是每个砝码 ...

  9. Android滑动动画ViewFlipper和视频播放VideoView的使用

    Android滑动动画,可以用ViewPager或者ViewFlipper实现. ViewPager自带触摸滑动功能,结合Fragment使用很好,来自补充组件android-support-v4.j ...

  10. vb调用exe文件

    vb调用exe文件 函数:Call Shell(PathName,WindowStyle) 或 a = Shell(PathName,WindowStyle) ,不需要声明. 注解:PathName ...