Android是一个开源的操作系统,所以我们可以下载到Android的源码来阅读。那么接下来我来讲讲如何下载Android的源码以及在下载中遇到的错误。
首先需要安装linux系统环境下, 我用的是 ubuntu16.04 LTS版
首先安装git 和 curl工具
快捷键: ctrl + alt + T 调出控制台 输入以下命令
//安装git版本控制工具
sudo apt-get install git
//安装curl
sudo apt-get install curl
创建一个文件夹来下载: repo
repo是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库。 repo详解
对于我们来说, 使用repo可以支持断点续传,因为在android源码非常大,在下载中可能会出错,这时候就断点续传能很好的解决下载到一半出错的情况
那么,我们键入一下命令
//在主目录创建bin文件夹
mkdir ~/bin
//将bin文件夹添加到环境变量中
PATH=~/bin:$PATH
接下来下载安装curl 键入以下命令
//下载repo
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
//对于国内的互联网环境, 上面的这条命令可能无法下载成功,可以使用下面这条
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" >~/bin/repo
// 给所有用户追加可执行的权限
chmod a+x ~/bin/repo
//配置repo到环境变量中,这里配置的是临时的环境变量。重启之后需要再输入一次
export PATH=~/bin:$PATH
//想配置永久的环境变量的话,需要到/etc/目录下修改profile文件,在文件最后添加export PATH=~/bin:$PATH。然后输入
source /etc/profile
来刷新环境变量
接下来创建一个存放源码的文件夹
// 创建源码下载目录
mkdir ~/android_source
// 修改文件夹权限为可读可写可执行
chmod 777 ~/android_source
//进入这个文件夹目录
cd ~/android_source
// 需要先配置git的用户信息 注意: 引号中的邮箱和名字换成你自己的就好
git config --global user.email "lks6123@163.com"
git config --global user.name "lks6123"
接下来初始化repo
//表示要下载当前线上最新的版本
repo init -u https://android.googlesource.com/platform/manifest
或者
//表示下载指定的安卓版本
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1
manifest后面的-b是表示初始化特定的版本
但是在国内的环境, 可能上面的是无法完成初始化的, 建议使用清华的镜像
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
//或者下载指定的版本
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.3_r1
当出现: repo initialized in /home/lks6123/android_source 表示初始化成功
最后输入如下命令,开始同步下载
repo sync
下载时候的一个错误
我在开始同步时出现了这样的错误提示
Initializing project platform/abi/cpp …
fatal: ‘../platform/abi/cpp.git’ does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
error: Cannot fetch platform/abi/cpp
解决办法 在android_source下有个隐藏文件夹 .repo 。点击查看,显示隐藏文件,即可显示出来。或者按下crtl + h键也可以显示出隐藏文件。接下来 打开.repo下的manifest.xml文件, 将
fetch=”..”
修改为:
fetch=”https://aosp.tuna.tsinghua.edu.cn”
注意:如果初始化时用的是android源码地址,那么是把
fetch=”..”
修改为:
fetch=”https://android.googlesource.com”
然后重新同步即可
注意: 下载过程中, 因为网络问题, 可能会中断下载. 当中断下载时, 继续使用repo sync命令继续下载.