Windows系统下载Android源码

1. 前言

下载Android源码,官方的网址:https://source.android.google.cn/setup/downloading

一般是提供给Linux系统环境下使用repo获取源码,那么Windows环境下的同学们下载源码的姿势是怎样的呢?

下面的内容将简单介绍一下Windo下载Android源码的过程。

2. 准备工作

首先,我们知道repo是为了方便管理Android多个git库而开发的Python脚本,其次,有条件的话,需自备梯子科学上网,当然没有也有对应的方法处理。最后,建议留有100GB或以上的硬盘容量,因为Android源代码占用比较大。

综合上述内容,准备环境内容有:

  • 安装和配置好Git环境
  • 安装和配置好Python环境
  • 条件允许的话,自备梯子
  • 留有100GB或以上的硬盘容量
3. 下载源码

1. 下载仓库的manifest文件

git clone https://android.googlesource.com/platform/manifest.git
// 不能科学上网就选用国内的清华数据源
git clone https://aosp.tuna.tsinghua.edu.cn/platform/manifest.git

这时会在仓库目录下会生成 manifest文件夹,里面除了 git 的配置外还有default.xml 文件。default.xml定义Android工程的多个git库列表,大致结构如下:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
    <remote  name="aosp"
            fetch=".."
            review="https://android-review.googlesource.com/" />
    <default revision="master"
             remote="aosp"
             sync-j="4" />
    
    <project path="art" name="platform/art" groups="pdk" />
    <project path="frameworks/base" name="platform/frameworks/base" groups="pdk-cw-fs,pdk-fs" />
    <!--每个project标签有path和name属性, -->
</manifest>

default.xml中的path是Android工程的路径结构,而name是git下载的具体路径值。

如果需要切换下载源码的分支,进入到manifest里执行git分支切换操作即可。笔者一般下载默认的master分支就好了,其为最新的稳定释放版本。

2. 新建一个Python文件,复制下面代码到文件中,修改工程工程路径后执行此脚本,即可开始下载代码了

import xml.dom.minidom
import os
from subprocess import call
 
# 1. 笔者的源码保存根路径
rootdir = "E:/AOSP"
 
# 2. 笔者的 git 安装路径
git = "D:/Program Files/Git/bin/git.exe"

# 3. 笔者的manifest文件夹中default.xml 的文件路径
dom = xml.dom.minidom.parse("E:/AOSP/manifest/default.xml")
root = dom.documentElement
 
# 4. 没有梯子可以使用清华源下载
# prefix = git + " clone https://android.googlesource.com/"
prefix = git + " clone https://aosp.tuna.tsinghua.edu.cn/"
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):  
            # 根据path属性下的值,创建当前工程的一系列上级目录
            os.makedirs(d)  
        os.chdir(d)  
    # 根据prefi的值加上name属性值拼接对应的git命令下载代码    
    cmd = prefix + node.getAttribute("name") + suffix  
    call(cmd)

如果想单独下载某个模块,一般的格式为git clone [数据源][project-name].git,这里以Launcher3为例,其project标签<project path="packages/apps/Launcher3" name="platform/packages/apps/Launcher3"/>,此时name属性值为platform/packages/apps/Launcher3,拼接数据源得到最终的下载地址:git clone https://aosp.tuna.tsinghua.edu.cn/platform/packages/apps/Launcher3.git

4. 小结

下载Android源代码是很有必要的,阅读源代码可以让我们对Android有更深的理解。所以我们无论使用哪个操作系统,都应该把代码下载到本地,方便学习。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值