赞
踩
官网文档:https://source.android.com/source/downloading
下载方法文档已经写的很清楚了,源码会分为超级多个git库,所以谷歌搞了个叫 repo
的工具(windows可以试下用这个https://github.com/esrlabs/git-repo),可以集中下载管理,超级简单,但国外的东西通常都会有乱七八糟的问题出现,可以自己研究一下。
platform/manifest
,点击进去,拿到 clone url
,如下图步骤,url为: git clone https://android.googlesource.com/platform/manifest
。git clone git://mirrors.ustc.edu.cn/aosp/platform/manifest
git clone https://aosp.tuna.tsinghua.edu.cn/platform/manifest
# 创建目录来存放源代码,建议100G以上 cd /f mkdir android cd android # 下载版本清单 git clone git://mirrors.ustc.edu.cn/aosp/platform/manifest # git clone https://aosp.tuna.tsinghua.edu.cn/platform/manifest # 进入目录 cd manifest # 列出版本清单 git tag # 切换到想要下载的版本,比如我这里是 android-9.0.0_r42 git checkout android-9.0.0_r42
脚本用的是 python
,自行下载安装python吧。
脚本前面几个配置成自己的目录就行了。
脚本比较简单,就是从清单里面读取git库,一个一个下载,可以自行优化。
# coding=utf-8 import xml.dom.minidom import os ############### 需要配置 ####################### # 源码存储路径,替换成你自己的路径 DOWNLOAD_PATH = r"E:\android\android-9.0.0_r42" # 清单文件路径 MANIFEST_PATH = r"E:\android\manifest\default.xml" # GIT_PREFIX = "git clone --depth 1 https://android.googlesource.com/" # GIT_PREFIX = "git clone --depth 1 https://aosp.tuna.tsinghua.edu.cn/" GIT_PREFIX = "git clone --depth 1 git://mirrors.ustc.edu.cn/aosp/" GIT_SUFFIX = ".git" ############################################### # 新建目录 if not os.path.exists(DOWNLOAD_PATH): os.makedirs(DOWNLOAD_PATH) root = xml.dom.minidom.parse(MANIFEST_PATH).documentElement for project in root.getElementsByTagName("project"): path = project.getAttribute("path") name = project.getAttribute("name") os.chdir(DOWNLOAD_PATH) last = path.rfind("/") if last != -1: path = os.path.join(DOWNLOAD_PATH, path[:last]) if not os.path.exists(path): os.makedirs(path) os.chdir(path) cmd = GIT_PREFIX + name + GIT_SUFFIX print(cmd) os.system(cmd)
注:关于--depth 1
,表示只下载最新的一个提交信息,如果不加depth参数,则会下载整个历史提交记录,亲测单单一个小项目Settings
,代码大概是80m
,但是.git目录高达1.7G
,如果不加depth,则会下载整个1.7G,如果加上,则不到100m。
我脚本文件名叫 download.py,运行 python download.py
,然后就是超级漫长的等待,反正我下载了一个通宵。。
比如我只是想看一下Launcher3
这个应用的源码,我就没必要下载整个包括framework的源码吧,流量是其次,毕竟时间是宝贵,留点时间约妹纸吧。
1、在清单文件中找到Launcher3
的部分,如下:
<project path="packages/apps/Launcher3" name="platform/packages/apps/Launcher3" groups="pdk-fs" />
2、构建clone的url
,如下:
git clone --depth 1 git://mirrors.ustc.edu.cn/aosp/platform/packages/apps/Launcher3.git
3、创建管理目录,以便下载多了混乱,然后进入目录下载,如下:
// 这里是手写的,可能有错,大概意思就是创建目录,进入目录,下载,搞定。
mkdirs /AndroidSrc/android-9.0.0_r42/packages/apps/
cd /AndroidSrc/android-9.0.0_r42/packages/apps/
git clone --depth 1 git://mirrors.ustc.edu.cn/aosp/platform/packages/apps/Launcher3.git
4、秒下,收工!
参考文章:https://www.cnblogs.com/zhangtingkuo/p/4703142.html
推荐个在线源码:http://androidxref.com/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。