最近在学习Android,便想到有必要把Android源码Down下来以便哪天自己研究研究。
网上搜了很久很多都是Ubuntu下的repo方法,对于我09年的老爷机来说,双系统不太现实,纯Ubuntu/Fedora有影响日常用。所以决定参照网络大神先例自己动手下载Android。
准备:
1.访问下:Android源码的Git库:https://android.googlesource.com/,如果访问都访问不了的话就不用谈下载了
2.硬盘空间:60G(仅下载)
工具:
Git 最新版本: http://git-scm.com/download/
Python_v2.7:https://www.python.org/downloads/
注意:Python 3.x和2.x差别巨大,建议用2.x版本
安装工具:
一路默认安装即可。
比如: Git装在C:盘,源码等文件都放在E:盘
开始:
1. 获取manifest文件:
//进入源码存放目录
cd E:
//Clone下manifest
git clone https://android.googlesource.com/platform/manifest.git
这一步后,E:盘生成manifest文件夹,内含default.xml,大小约50k
2. 选择要下载的源码版本
//进入manifest文件夹
cd manifest
//查看现有的所有系统版本
git tag
//选择要下载的源码版本,比如需要下载5.1.1
git checkout android-5.1.1_r34
3.Clone选定版本的源码
进入Android源码的Git库:https://android.googlesource.com/,列出的每一项都是一个单独的Git子库,所有字库合起来就是Android的完整源码。
当然,可以一个子库一个子库的clone,但是相当麻烦,所以要借助Python脚本实现批量操作。
Python脚本:
import xml.dom.minidom
import os
from subprocess import call
#downloaded source path
rootdir = "E:/Android"
#Git路径根据自己情况修改
git = "C:/Program Files/Git/bin/git.exe"
#default.xml文件路径根据自己情况修改
dom = xml.dom.minidom.parse("E:/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)
把上面的Python代码写入py文件,运行之后开始下载,时间长短就要看网速了。
这样,Android源码就Down下来了。