android源码下载及编译(1)-下载

目录

一、准备工作

1.安装VM虚拟机

    VMware 是一个常见的虚拟机系统,可以用来安装其他操作系统。

    可以参考:

    VMware 11.0 简体中文版|附永久密钥:

    https://blog.youkuaiyun.com/kkwant/article/details/81017144

    VMware下载及安装(含破解码)永久使用:

    https://blog.youkuaiyun.com/empty_ly/article/details/79992611

2.安装Ubuntu系统

    官方推荐环境介绍

    1. 硬件要求:

    64位的操作系统只能编译2.3.x以上的版本,如果你想要编译2.3.x以下的,那么需要32位的操作系统.

    磁盘空间越多越好,至少在100GB以上.如果你想要在是在虚拟机运行linux,那么至少需要16GB的RAM/swap.

    2. 软件要求:

    1. 操作系统要求

    在AOSP开源中,主分支使用Ubuntu长期版本开发和测试的,因此也建议你使用Ubuntu进行编译,下面我们列出不同版本的Ubuntu能够编译哪些android版本:

Android版本编译要求的Ubuntu最低版本
Android 6.0至AOSP masterUbuntu 14.04
Android 2.3.x至Android 5.x Ubuntu 12.04
Android 1.5至Android 2.2.xUbuntu 10.04

    2. JDK版本要求

    除了操作系统版本这个问题外,我们还需要关注JDK版本问题,为了方便,同样我们也列出的不同Android版本的源码需要用到的JDK版本:   

Android版本编译要求的JDK版本
AOSP的Android主线OpenJDK 8
Android 5.x至android 6.0OpenJDK 7
Android 2.3.x至Android 4.4.xOracle JDK 6
Android 1.5至Android 2.2.xOracle JDK 5

    更具体的可以参看:Google源码编译要求:

    https://source.android.com/source/requirements.html

    3. 下载地址

    可以访问网易开源镜像站下载不同版本Ubuntu

    http://mirrors.163.com/ubuntu-releases/

    我使用的是Ubuntu 14.04(2G内存+100G硬盘,编译时还需增加2Gswap)

    具体安装步骤可以参考:新手安装Ubuntu 16.04 操作系统

    https://blog.youkuaiyun.com/jjkkaa326/article/details/78638814

二、环境搭建

1.安装组件

    Ubuntu系统安装好后,需要安装一些必要的工具(或者说组件),

    Google官方构建编译环境指南中已经说明了Ubuntu14.04,Ubuntu 12.04,Ubuntu 10.04需要添加的依赖,这里就不做介绍了.
               # Ubuntu14.04

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip

    # Ubuntu16.04

 sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
 sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
 sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
 sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
 sudo apt-get install git-core gnupg flex bison gperf build-essential  
 sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
 sudo apt-get install libc6-dev-i386
 sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
 sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
 sudo apt-get install lib32z-dev ccache

2.JDK

     由于我需要编译的是Android4.4.4_r1版本,所以安装的是jdk1.6(jdk-6u45-linux-x64.bin),
                 如果是安装1.7及以上版本可以在线安装:

sudo apt-get update   
sudo apt-get install openjdk-7-jdk        jdk1.7
sudo apt-get install openjdk-8-jdk        jdk1.8

      如安装多个版本jdk,可任意切换,选择对应的jdk版本

$ sudo update-alternatives     --config java
$ sudo update-alternatives     --config javac

3.安装repo  

    repo 是安卓环境下的命令行工具,对Git部分命令进行封装,将 百多个git库进行更新。 具体安装步骤如下:

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

  说明:
             a.  PATH=~/bin:$PATH,代表配置环境变量
             b.  curl也可以换成curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
                  或curl https://aosp.tuna.tsinghua.edu.cn/git-repo-downloads/repo > ~/bin/repo        (清华源—推荐)
             c.  如遇到无法下载repo,可直接通过curl后面链接直接下载,然后拷贝到/bin/目录中,然后修改权限chmod
             d.  如果都不能下载,可直接通过git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo,下载git-repo目录,然后                            将git-repo中的repo文件复制到 /bin目录中,并修改权限

三、源码下载

1.创建一个存放安卓源码的空目录

mkdir andoird     //创建源码下载目录 
cd android        //进入目录

2.进入andoird 目录,运行 repo init 来同步相应版本的源码:

repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.4_r1

   由于google站无法访问,所以我选择了清华的下载源,用下面的命令下载

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.4.4_r1  //下载指定版本

   下载最新版本可以使用

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

    或:

repo init -u git://aosp.tuna.tsinghua.edu.cn/aosp/platform/manifest

两者实现的效果一致,仅仅只是协议不同.

如果执行该命令的过程中,提示无法连接到 gerrit.googlesource.com,那么我们只需要编辑 ~/bin/repo文件,找到REPO_URL这一行,然后将其内容修改为:

REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'

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

(注:有评论说清华的镜像网站已经改成了这个:REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/',具体未亲测

然后重新执行上述命令即可.

补充说明

1.不带参数的manifest命令用于获取master上最新的代码,但是可以通过-b参数指定获取某个特定的android版本,比如我们想要获取android-4.0.1_r1分支,那么命令如下:

//中科大源

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

//清华源

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1

3.配置你的用户邮箱

 repo init 后,会提示你输入名字和邮箱, 两个我都是直接按的回车键,这时它默认将系统用户名和主机名 作为用户名和邮箱,接着我直接按了y,提示repo初始完。

$ git config --global user.name "Your Name"

$ git config --global user.email "you@example.com"

4.然后同步源码树

repo sync         //真正下载

下载完成后,checkout出的代码有9.4G

进入隐藏的 .repo目录,查看当前分支大小,有64G

如果想check out 其它分支代码,将工作目录下check out出的代码删除,保留隐藏的.repo 目录,重新初始化分支执行上述流程就行,会快很多。

 (提示:一定要确定代码完全同步了,不然在下面编译过程出现的错误会很痛苦,不确定是否下载完全,可以多用repo sync同步几次)

四、直接下载源码编译

由于是公司电脑,配置及各种限制,下载了一次失败后,就没有再试上面的在线下载,我是直接通过百度网盘下载源码后解压缩编译的,这里也简单说下直接下载安卓源码并解压。
源码下载后的文件是.7z格式的压缩包,需要拷贝到Ubuntu系统下进行解压,如果未安装工具,需要先安装p7zip或p7zip-full,安装及解压命令如下:

sudo apt-get install p7zip			//安装p7zip或p7zip-full(如已安装可省略) 
7z x manager.7z -r -o /home/xx			//解压文件

x 代表解压缩文件,并且是按原始目录解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)manager.7z 是压缩文件,这里大家要换成自己的。如果不在当前目录下要带上完整的目录;
           -r 表示递归所有的子文件夹;
           -o 是指定解压到的目录,这里大家要注意-o后是没有空格的直接接目录。

附源码网盘下载地址:

Android源码

https://pan.baidu.com/s/1ngsZs#list/path=%2FAndroid%E6%BA%90%E7%A0%81

Android源码下载(包括最新8.0版本)

https://blog.youkuaiyun.com/hty1053240123/article/details/78333007


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值