1、准备工作

先对的的源进行一下更新

sudo apt-get install update复制代码

安装jdk

sudo apt-get install openjdk-7-jdk复制代码

安装好之后修改 /etc/profile 中的环境变量,将openjdk加入到JAVA_HOME中

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/复制代码

然后使修改的配置文件立即生效:

source /etc/profile复制代码

接下来安装必备的工具软件

$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386

libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc

zlib1g-dev:i386 dpkg-dev复制代码

我这里安装的时候是直接成功的,如果出错,可以参考这个

ERROR:unity-control-center :

依赖: libcheese-gtk23 (>= 3.4.0) 但是它将不会被安装

依赖: libcheese7 (>= 3.0.1) 但是它将不会被安装复制代码

这里的报错是因为是由 libgl1-mesa-glx:i386 报引起的,需要替换掉,更改为:

$ sudo apt-get install libgl1-mesa-glx-lts-quantal:i386复制代码

接下来配置Cache,使用下面两条命令

$ sudo apt-get install ccache

$ source ~/.bashrc复制代码

然后就是下载repo :

首先创建repo 目录

$ mkdir ~/bin

$ PATH=~/bin:$PATH

//下载repo

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

chmod a+x ~/bin/repo复制代码

这里你可以会思考,这个ropo是什么鬼?这里需要说明一下,andoid源码是使用git管理,管理的话是使用 repo + gerrit

然后将git-repo 目录中的repo 文件拷贝到 bin目录

$ cp git-repo/repo ~/bin/复制代码

接下来打开bin目录下的repo 文件,修改其中的 REPO_URL 参数,修改为:

REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'复制代码

这里有点需要注意,在最新的清华源有点修改,将git协议该成了https,因此,你可能需要修改成如下代码

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

接下来,我们就是要创建一个用于存贮源码的路径,并且初始化repo

$ mkdir ~/aosp

$ cd ~/aosp

$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.1.1_r4复制代码

这里想用的,需要修改git为https

2、源码下载

$ repo sync复制代码

如果在下载的过程中,出现错误,可以不用管,直接使用

$ repo sync -f复制代码

3、编译整个源码

当我们所有的准备工作都做好之后,下面就可以直接进行的编译操作了。

1) 设置cache

$ cd aosp $ prebuilts/misc/linux-x86/ccache/ccache -M 50G复制代码

2) 初始化编译环境

$ . build/envsetup.sh复制代码

3)选择编译目标包

有很多中,可以用lunch命令查看,我选择的是最常用的arm

$ lunch aosp_arm-eng复制代码

4)编译

可以在 make 后设置参数,加快编译速度,我用的是

make -j8 //我的cpu是4核8线程,所以我开了8个线程同时下载复制代码

当你看到如下代码的时候,你应该会露出开心的笑容了。因为这表示着你成功的编译了代码。

Creating filesystem with parameters:

Size: 576716800

Block size: 4096

Blocks per group: 32768

Inodes per group: 7040

Inode size: 256

Journal blocks: 2200

Label:

Blocks: 140800

Block groups: 5

Reserved block group size: 39

Created filesystem with 1467/35200 inodes and 109543/140800 blocks

Install system fs image: out/target/product/generic/system.img

out/target/product/generic/system.img+ maxsize=588791808 blocksize=2112 total=576716800 reserve=5947392

#### make completed successfully (54:50 (mm:ss)) ####复制代码

4、运行模拟器

$ emulator复制代码

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐