最近观看《android核心分析》,所以很多细节都没有详细看代码很难理解。请记住,印象不深。感觉是最好再一起去的源代码,返回下载android源代码,遇到了许多问题,最后开始下载。合并流程,鉴于网上的教程非常多的时间长了就会失效。本文关闭14年4一个月18日本亲测有效。
:
下载msysgit。安装 官方下载:http://download.csdn.net/detail/jason0539/7212993,
下载python,安装 官方网址:http://www.python.org
打开Git Bash。运行命令,我是放在d盘的,路径可自己定义
cd D:
这里会遇到问题,说你连接不上网站,错误代码443
解决方式。在电脑的hosts文件里加入例如以下几行,不知道hosts在哪的自行百度
74.125.31.82 www.googlesource.com 74.125.31.82 android.googlesource.com 203.208.46.172 cache.pack.google.com 59.24.3.173cache.pack.google.com
加入之后在又一次运行上面的命令应该没问题。继续往下
输入命令,切换到manifest文件夹
cd manifest
git tag 列出android各个分支版本号
下载android-4.4系统源代码,输入以下命令,假设要下载其它版本号源代码。checkout git tag列出的版本号号就可以
git checkout android-4.4.2_r1
checkout之后,manifest/default.xml文件里记录的就是android4.4系统各个模块的路径,
以下就轮到python出场了,这里用的是网上的一段python代码,实现源代码的批量下载
运行此脚本的前提是已经运行了git checkout,选择好了要下载的Android源代码版本号。假设你的manifest文件不是D:/manifest/default.xml。还要把里面的git.exe的路经改动成你的安装路径。请自行改动脚本。
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)
运行这个脚本之后,就開始自己主动下载了。
截张图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamFzb24wNTM5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" />
预计须要一段时间,耐心等待。
-------------------------------------15年7月28日更新------------------------------------------------------------
用公司电脑下代码,用的mac,流程跟上面有些不一样,可是还是会遇到网络问题,幸好买了VPN,没有浪费非常多时间,想起来这里好多评论提到连接失败的问题
所以建议大家购买vpn。如今vpn服务有非常多,自己任选都能够。
我自己在用云梯。你不介意的话能够用以下链接购买。廉价10块钱,同一时候我也能得到10元优惠,算互惠互利吧
版权声明:本文博主原创文章,博客,未经同意不得转载。