从清华源下载安卓源码(AOSP)Ubuntu14.04

一、环境准备

安装open jdk

在Terminal终端下输入如下命令行:

#添加openjdk8的第三方源

sudo add-apt-repository ppa:openjdk-r/ppa

#执行更新

apt-get update

#安装openjdk8

sudo apt-get install openjdk-8-jdk

 查看open jdk的安装路径

在Terminal终端下输入如下图所示的命令:

 从上图中可以看到open jdk的安装路径为:/usr/lib/jvm/java-1.8.0-openjdk...

配置/etc/profile以及~/.bashrc文件

按照下图格式配置相关文件,并使用source /etc/profile以及source ~/.bashrc指令是文件修改生效

二、安装编译所需依赖包 

 在Terminal终端下分别输入如下所示指令,安装编译安卓源码所需的依赖包

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

三、从清华源下载源码 

下载repo工具

 mkdir ~/bin

PATH=~/bin:$PATH

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo

chmod a+x ~/bin/repo

上述指令的作用是先在home目录下创建bin目录,然后将其添加到 PATH环境变量中,接着再从清华镜像中下载repo工具,并赋予repo相应权限确保该工具能够被使用

配置~/.bashrc文件

repo工具运行过程中会尝试从官方的git上更新相应的文件,可以将如下所示的内容添加到~/.bashrc文件中,使其使用清华的镜像源进行更新

export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' 

使用source ~/.bashrc指令使该文件生效

下载aosp-latest .tar

首先下载aosp-latest.tar包,清华镜像下载地址为:https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar

下载完毕后可以使用tar -zxvf aosp-latest.jar指令解压该文件,解压出来文件夹名称为aosp,里面只有一个叫.repo的隐藏文件夹,该文件夹就是仓库,安卓源代码都在里面,可以使用CTRL+H来查看该隐藏文件夹。

同步下载源代码

使用如下指令,同步并导出源代码

cd aosp
repo sync

PS:repo sync -l // -l表示只导出代码到本地,不通过网络更新代码

       repo sync -n // -n表示只通过网络更新代码

 上述指令一旦执行,就开始同步Android源代码,在这个过程中如果出现网络中断的情况,重新执行repo sync指令就会继续执行同步下载的过程。也可以编写一个自动下载脚本,确保出错了之后会自动执行repo sync。首先,在aosp文件夹下创建一个脚本xxx.sh(文件名随意),然后将如下代码复制到脚本中:

#!/bin/bash
     repo sync -j 8  
     while [ $? = 1 ]; do  
             echo “======sync failed, re-sync again======”  
             sleep 3  
             repo sync  -j 8 
     done

最后通过sh xxx.sh 指令运行该脚本。(PS:-j 后面的数字可以根据自己的电脑配置进行修改,比如你电脑的CPU核心数为4,就将其修改为-j 4)

同步下载完成后,可以得到如下所示的信息以及相关的文件夹和文件(图中所示为Android 9.0的目录结构):

 

 四、编译源码 

初始化编译环境 

 Android的每一个工程都有Android.mk文件,在编译整个Android系统的时候会递归调用这些文件对Android源代码进行编译。而使用到的一些编译命令是 Linux 主机没有的,是在 envsetup.sh 脚本定义的,所以我们需要通过该脚本初始化一个特定的终端,使其可执行诸如 mm、mmm 这类编译 Android 专用的命令。初初始化指令为:

source build/envsetup.sh

PS:在Android源代码的根目录下执行该指令,在本文中该目录为aosp 

选择编译目标

使用 lunch 命令设置编译目标

对于X86架构的模拟器,可以选择编译的目标为aosp_x86_64-eng,所以我们的指令为: lunch aosp_x86_64-eng

编译 Android 源码 

 在 Android 源码根目录内,执行 make 命令就可以开始 Android 源码的编译。但是默认情况下,系统只会使用一个 CPU 核来编译 Android 源码,如果 CPU 是多核的,则可以显示指出使用多个核编译 Android 源码,这样可以大大提高编译效率。比如,CPU为4核的话可以执行make -j 4

运行模拟器

使用emulator 指令运行模拟器

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值