作为一名Android工程师,阅读Android源代码也是一门基本功,前段时间由于公司开发需要,便下载编译了Android_7.1.1_r6的源代码。在Windows下貌似是无法编译源代码的,为了以后方便使用,我在实体机上安装了Ubuntu 16.04,从固态分了100G作为Linux系统盘,再分出200G机械挂载在/home目录下,使用Open JDK8进行了编译,现做出如下记录。

官网地址: http://source.android.com/source/downloading.html

如果只是下载单独的项目可以到GitHub:https://github.com/android

如果只是查看代码又不想下载,还有一个去处:http://androidxref.com/

在安装完Ubuntu以后,按照以下步骤下载Android源代码:

Goole官方教程传送门:https://source.android.com/source/downloading.html

  1. 下载Git(版本控制工具).

    sudo apt-get install git
  2. 安装curl(上传和下载数据工具).

    sudo apt-get install curl
  3. 安装repo(一个基于git的版本库管理工具, 这里用于自动批量下载android整个项目)

    ① 先创建一个目录,用于存放repo命令(官网和各种资料使用如下方式,而我则喜欢将其创建为隐藏文件,强迫症,没得治)

    mkdir ~/bin

    ② 下载repo工具,至创建的文件夹

    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

    如果上述 URL 不可访问,可以用下面的:

    curl https://storage-googleapis.proxy.ustclug.org/git-repo-downloads/repo > ~/bin/repo

    ③ 修改repo权限,使其具有可执行权限

    chmod a+x ~/bin/repo

    ④ 把repo临时添加到环境变量中(如果重启Ubuntu需要重新添加,也可直接在配置文件中修改)

    export PATH=~/bin:$PATH
  4. 创建文件夹

    ① 创建目录,用于存放Android源码(名字任意)

    mkdir ~/Android_7.1.1_r6

    ② 修改文件夹权限为Android_7.1.1_r6

    chmod 777 ~/Android_7.1.1_r6

    ③ 进入创建好的文件夹

    cd ~/Android_7.1.1_r6
  5. 初始化库

    ① 需要先配置git的用户信息(也就是用户邮箱和姓名)

    git config --global user.email "you@example.com"
    git config --global user.name "Your Name"

    ② 执行repo初始化仓库

    repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest

    如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的:

    REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'

    ③ 如果初始化成功,则出现以下提示:

    repo initialized in /home/<username>/source

    注:如果需要下载某个特定Android,则使用-b指定,命令如下:

    repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-7.1.1_r6

    Android版本列表(需要可以访问Google)

  6. 同步源码树(以后只需执行这条命令来同步):.

    repo sync

    注: repo支持断点续传,如果意外断开连接,最后下载完成可再执行一次repo sync,以对下载代码进行校验

整个过程耗时根据网络情况而定,在我5~8M/s的网速下也下载了好几个小时。

最终下载得到android_7.1.1_r6源代码,加上中间生成的.repo文件夹内容,总计63G,.repo文件夹占据42G,相减即得源代码大约为21G。关于.repo删不删的问题,如果代码需要同步,更新,那么就留着,如果不需要,那么就可以删掉。

以上参考自科大源AOSP镜像下载help撰写而成,如果访问不到Google改用的访问地址也是科大源的,另外清华源也可以下载源代码。特别说明:科大源建议使用git同步,清华源只能够通过HTTP协议同步。

附上科大源地址:https://lug.ustc.edu.cn/wiki/mirrors/help/aosp

附上清华源地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

以上属于个人体验心得总结,若有不足之处,还望不吝赐教,欢迎批评指正,共同进步。

Android_7.1.1_r6源码下载的更多相关文章

  1. Android_7.1.1_r6源码编译

    上篇文章讲述了如何下载Android源码,在篇文章就来说一说Android源码编译.其实一般来说如果修改的软件和底层没什么关系,直接提取相应的源代码到Android Studio编译就可以了,如果是与 ...

  2. C# ini文件操作【源码下载】

    介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...

  3. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  4. C# 条形码操作【源码下载】

    本篇介绍通过C#生成和读取一维码.二维码的操作. 目录 1. 介绍:介绍条形码.条形码的分类以及ZXing.Net类库. 2. 一维码操作:包含对一维码的生成.读取操作. 3. 二维码操作:包含对二维 ...

  5. DataGridView绑定源码下载

    效果图: 源码下载:http://hovertree.com/h/bjaf/bbot18bj.htm 上面源码不包含数据库的查询,需要获取数据库数据的话,请看这个的源码: http://hovertr ...

  6. Web 开发中很实用的10个效果【附源码下载】

    在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...

  7. Android 源码下载方法(Git 方式clone)

    Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用 这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过 Git-Tortoi ...

  8. yate: windows下源码下载,配置,编译

    源码下载:使用svn下载checkout:http://voip.null.ro/svn/yate/trunk 配置:(本人使用的是vs2008,故下载的qt工具都是对应2008) 1. 下载并安装q ...

  9. Android斗地主棋牌游戏牌桌实现源码下载

    本次给大家分享下Android斗地主棋牌游戏牌桌实现源码下载如下: 为了节约内存资源,每张扑克牌都是剪切形成的,当然这也是当前编程的主流方法. 1.主Activity package com.biso ...

随机推荐

  1. 洛谷 P2822 组合数问题 题解

    今天又考试了...... 这是T2. Analysis 考试时想了一个判断质因数个数+打表的神奇方法,但没在每次输入n,m时把ans置0,50分滚粗. 看了题解才发现原来是杨辉三角+二维前缀和,果然还 ...

  2. Linux操作系统常用命令合集——第四篇-文件系统权限操作(5个命令)

    1.umask [命令作用] 文件或目录创建时的遮罩码 [命令语法] umask     [选项]    [参数] [常用选项] -p  --输出的权限掩码可直接作为指令来执行 -s  --以符号方式 ...

  3. error C4995: “wcscpy”: 名称被标记为 #pragma deprecated

    1>c:\program files (x86)\microsoft visual studio\2017\professional\vc\tools\msvc\14.16.27023\atlm ...

  4. 2019暑期金华集训 Day3 图论

    自闭集训 Day3 图论 NOI2019 D2T1 没有真正建出图来的必要,可以直接打取\(\min\)的\(tag\). 也可以把边压进堆里,然后变成一个二维清点问题(???),然后就线段树+并查集 ...

  5. 【转】使用 Ansible 实现数据中心自动化管理

    长久以来,IT 运维在企业内部一直是个耗人耗力的事情.随着虚拟化的大量应用.私有云.容器的不断普及,数据中心内部的压力愈发增加.传统的自动化工具,往往是面向于数据中心特定的一类对象,例如操作系统.虚拟 ...

  6. 解决Ubuntu19.04无法安装SecureCRT

    推荐下载SecureCRT的tar包 在ubuntu19.04上安装SecureCRT的时候,报错libssl1.0.0-xxx没有安装 解决办法:下载并安装libssl1.0.0_1.0.1t-1+ ...

  7. codeforces396A

    sol:很显然就是找出所有质因数,然后分别塞进去就行了,怎么塞就是组合数.感觉就是道小学奥数题 #include <bits/stdc++.h> using namespace std; ...

  8. vue+elementui 开发的网站IE浏览器加载白屏(不兼容)解决办法

    1.需要检查一下 export default { name: 'aa',-------vue的name是不可以重复的-----这个是决定性原因 data() { return {} } 2.变量声明 ...

  9. python 查看安装的库的路径(找site-packages)

    import sysprint(sys.path) orwhich pythonwhich python3

  10. zabbix(9)iterms(监控项)

    一.iterms key 监控项按参数来分有两种:带参数和不带参 按定义来分:zabbix自带和用户自定义 1)Key可以带参数,该参数为一个数组列表,可以同时传递多个参数,Key的格式如下: 既Ke ...