Windows 环境下载 Android 源码「建议收藏」

Windows 环境下载 Android 源码「建议收藏」Windows环境下载Android源码前言Android官网(该方式不适合Windows平台):https://source.android.com/source/downloading.html可是我就想在Windows中使用SourceInsight看看源代码,当然可以!准备环境安装git安装Python自备梯子硬盘剩余容量最好大…

大家好,又见面了,我是你们的朋友全栈君。

Windows 环境下载 Android 源码

前言

Android 官网(该方式不适合 Windows 平台):https://source.android.com/source/downloading.html

可是我就想在 Windows 中使用 Source Insight 看看源代码,当然可以!

准备环境

  1. 安装 git
  2. 安装 Python
  3. 自备梯子
  4. 硬盘剩余容量最好大于 100G

1. 安装 git

官网:https://git-scm.com/downloads/

图形化工具:https://tortoisegit.org/

什么?不会安装 git,那还看什么源码!自行百度!

2. 安装 Python

官网:https://www.python.org/downloads/

安装参考:http://jingyan.baidu.com/article/c910274be14d64cd361d2dd8.html

只需要安装好运行环境即可

3. 自备梯子

没有梯子?那就使用清华源:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

下载源码

1. 打开 Git Bash,用 git 克隆源代码仓库

git clone https://android.googlesource.com/platform/manifest.git
//没有梯子使用清华源
git clone https://aosp.tuna.tsinghua.edu.cn/platform/manifest.git

这里写图片描述

这时 D:/android_source_code/ 目录下会出现一个 manifest 目录,进入此目录,里面除了 git 的配置目录外,clone 下来了一个 default.xml 文件。

2. 切换到想要的源码版本分支

去这里 https://source.android.com/source/build-numbers.html#source-code-tags-and-builds

找到想要的版本分支,并复制。

cd manifest
//没有梯子,使用 git branch -a 查看所有分支,找到想要的分支
git branch -a
git checkout android-6.0.1_r79 //这里以 6.0 最后一个版本下载

这里写图片描述

这里写图片描述

这里写图片描述

3. 使用 Python 执行脚本进行源代码下载

将下面的代码复制,创建文件 python_download.py,并保存。

import xml.dom.minidom
import os
from subprocess import call
 
# 1. 修改为源码要保存的路径
rootdir = "D:/android_source_code/Android_6_0_1"
 
# 2. 设置 git 安装的路径
git = "C:/Develop/Git/bin/git.exe"

# 3. 修改为第一步中 manifest 中 default.xml 保存的路径
dom = xml.dom.minidom.parse("D:/android_source_code/manifest/default.xml")
root = dom.documentElement
 
#prefix = git + " clone https://android.googlesource.com/"
# 4. 没有梯子使用清华源下载
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):  
            os.makedirs(d)  
        os.chdir(d)  
    cmd = prefix + node.getAttribute("name") + suffix  
    call(cmd)

4. 执行 Python 脚本开始下载

打开 Python 客户端

这里写图片描述

打开上一步保存的 python_download.py 脚本文件

这里写图片描述
点击 Run->Run Module 来运行脚本,或直接按F5运行。

这里写图片描述

静静地等待下载完成吧。

更多文章:https://github.com/jeanboydev/Android-ReadTheFuckingSourceCode

我的公众号

欢迎你「扫一扫」下面的二维码,关注我的公众号,可以接受最新的文章推送,有丰厚的抽奖活动和福利等着你哦!?

Windows 环境下载 Android 源码「建议收藏」

如果你有什么疑问或者问题,可以 点击这里 提交 issue,也可以发邮件给我 jeanboy@foxmail.com

同时欢迎你 Android技术进阶:386463747 来一起交流学习,群里有很多大牛和学习资料,相信一定能帮助到你!

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159530.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python对csv文件的读写

    python对csv文件的读写首先先简单说一下csv文件,csv的全称是Comma-SeparatedValues,意思是逗号分隔值,通俗点说就是一组用逗号分隔的数据。CSV文件可以用excel打开,会显示如下图所示:这个文件用notepad打开显示是这样的,这是它原始的样子:好了,下班我们来用python对csv文件进行读写操作1.读文件如何用Python像操作Excel一样提取其中的一列,即一个字段,利用Py…

    2022年7月21日
    11
  • 华为EC6108V9C/ E6108V9强刷固件及教程

    华为EC6108V9C/ E6108V9强刷固件及教程电信移动华为 EC6108V9C E6108V9 强刷固件刷机包及教程固件特点 1 调出原厂固件屏蔽的 wifi 开放原厂固件屏蔽的市场安装和 u 盘安装 apk 2 无开机广告 无系统更新 不在被强制升级 修改 dns 三网通用 3 大量精简内置的没用的软件 运行速度提升 30 以上 多出大量的存储空间 4 去除应用安装限制 实现自由安装软件 5 支持开机自启动 开机密码锁 儿童应用锁 应用隐藏 开机自动进入 HDMI 等各种花式功能 6 固件压缩包有刷机教程 解压获取 1 U 盘选择

    2025年6月14日
    0
  • pytorch交叉熵损失函数_yolov5损失函数

    pytorch交叉熵损失函数_yolov5损失函数均方损失函数:这里,loss,x,y的维度是一样的,可以使向量或者矩阵,i是下标。很多的loss函数都有size_average和reduce两个布尔类型的参数,因为一般损失函数都是直接计算batch的数据,因此返回的loss结果都是维度为(batch_size,)的向量。1)如果reduce=False,那么size_average参数失效,直接返回向量形式的loss2)如果…

    2022年9月17日
    0
  • 伪随机数算法_伪随机数预测工具

    伪随机数算法_伪随机数预测工具Random转载内容,有更改,感谢原作者(http://www.cnblogs.com/softidea/p/5824240.html#3697214)Java中的Random类生成的是伪随机数,

    2022年8月1日
    2
  • Android service 启动篇之 bindService

    Android service 启动篇之 bindService前言:前面几篇博文Android中service详解Androidservice启动篇之startServiceAndroidservice启动篇之startForegroundService通过sourcecode分析了AMS中service的启动过程,bindService相对复杂一点,主要是多了一些service和app的绑定关系处理。本文继续…

    2022年5月1日
    55
  • strip 命令的使用方法

    strip 命令的使用方法

    2021年12月9日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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