windows平台下载android源码

最近在看《android内核剖析》,很多细节不具体看代码很难理解,记住了印象也不深,感觉还是跟着源码走一遍好些,回来下载android源码,遇到不少问题,终于开始下载了,整理下流程,鉴于网上很多教程时间久了都会失效,本文截止14年4月18日亲测有效。需要工具如下:下载msysgit,安装     官方下载:http://code.google.com/p/msysgit/downloads

大家好,又见面了,我是全栈君。

最近在看《android内核剖析》,很多细节不具体看代码很难理解,记住了印象也不深,感觉还是跟着源码走一遍好些,回来下载android源码,遇到不少问题,终于开始下载了,整理下流程,鉴于网上很多教程时间久了都会失效,本文截止14年4月18日亲测有效。

需要工具如下:

下载msysgit,安装     官方下载:
http://download.csdn.net/detail/jason0539/7212993
 下载python,安装      官方网址:
http://www.python.org
 
打开Git Bash,执行命令,我是放在d盘的,路径可自定义
 
cd D:
 
windows平台下载android源码
 
这里会遇到问题,说你连接不上站点,错误代码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)

执行这个脚本之后,就开始自动下载了,

 
截张图:
windows平台下载android源码
 
估计需要一段时间,耐心等待。

————————————-15年7月28日更新————————————————————

用公司电脑下代码,用的mac,流程跟上面有些不一样,但是还是会遇到网络问题,幸好买了VPN,没有浪费很多时间,想起来这里好多评论提到连接失败的问题

所以建议大家购买vpn,现在vpn服务有很多,自己任选都可以,

我自己在用云梯,你不介意的话可以用下面链接购买,便宜10块钱,同时我也能得到10元优惠,算互惠互利吧


————————————16年2月17日更新————————————————————-
现在推荐用清华镜像的下载,无需翻墙,速度也比较快,https://wiki.tuna.tsinghua.edu.cn/MirrorUsage/android
但是还是推荐一下云梯哈,翻墙后方便很多,用此链接购买你我都能优惠10元
http://protizi.com/?r=3a3de744a61437e8

 

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/121346.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • MATLAB02:结构化编程和函数定义「建议收藏」

    文章目录MATLAB02:结构化编程和函数定义结构化编程流程控制语句和逻辑运算符流程控制语句示例使用循环语句应尽量预先分配内存空间MATLAB02:结构化编程和函数定义结构化编程流程控制语句和逻辑运算符与大多数编程语言相同,MATLAB有以下流程控制语句:流程控制语句作用if,elseif,else若if语句为真,则执行子句switch,case,ot…

  • 自动化运维平台Spug介绍

    自动化运维平台Spug介绍一、概要Spug是一款使用Python+Flask+Vue+Element组件开发的开源运维管理系统,系统前后端分离,项目创建于2017年,2018年2月第一个开源运维平台版本发布,设计为面向中小型企业设计的轻量级无Agent的自动化运维平台,UI基于AntDesign设计,整合了主机管理、主机批量执行、主机在线终端、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能,且二次开发很方便。它采用授权协议AGPL-3.0,使用开发语言PythonJavaScript;软件采用无Agen

  • Laravel 之搜索引擎elasticsearch扩展Scout

    Laravel 之搜索引擎elasticsearch扩展Scout

    2021年10月24日
  • JavaFX横幅类游戏开发 教训 游戏贴图

    JavaFX横幅类游戏开发 教训 游戏贴图

  • sqlyog下载安装_sqlyog激活成功教程版

    sqlyog下载安装_sqlyog激活成功教程版地址:https://github.com/webyog/sqlyog-community/wiki/Downloads

  • CPLD和FPGA的区别

    CPLD和FPGA的区别下面我们整理一下CPLD和FPGA的主要区别:1)CPLD的逻辑阵列更适合可重复编程的EEPROM或Flash技术来实现。而FPGA显然是利用SRAM技术更合适。2)由于是EEPROM或者Flash工艺决定了CPLD是有一定的擦写次数限制的。而FPGA在实际使用中几乎可以说是无配置次数限制。3)CPLD由于采用的是EEPROM或者Flash工艺所以配置掉电后不丢失,也就不需要外挂配置芯片。而FPGA采用的是SRAM工艺,配置在掉电后就没有了,因此需要一个外部配置芯片。4)CPLD的安

发表回复

您的电子邮箱地址不会被公开。

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