Ubuntu14.10 编译 Android5.0 源码

哈哈哈!先大笑三声一吐心中抑郁之气,经过几天的努力,终于把android的源码编译出来了。


其实编译android源码并不困难,根据官方文档就寥寥几步,可是在大天朝,google相关服务现在全部被墙,导致想访问google困难重重,编译源码更是步步维艰。闲话稍絮,进入正题:

编译时参考的博文:

1.http://blog.csdn.net/gobitan/article/details/24367439

2.https://wiki.tuna.tsinghua.edu.cn/MirrorUsage/android

第一部分 环境搭建

--------------------------------------------------------------------------------------------------------

1.安装ubuntu

   编译Android 5.0 需要ubuntu 64位的操作系统,在 http://www.ubuntu.com/download/ubuntu-kylin-zh-CN 下载Ubuntu 14.10 64 位版本。

   ps:1.建议各位下载14.10,不要下载14.04,因为我最开始现在14.04的时候,在安装编译需要的软件时,各种依赖问题,很难解决,如果你不是对linux很有信心,不要用14.04版本下载后安装这里就不细说了

          2.Android  源码编译的磁盘和硬盘空间要求较高,ubuntu 的磁盘空间需要分配60G以上,我安装的是双系统,分配了100G的空间,编译完成使用了55G左右; 内存至少分配 2G,并且Swap空间分配4G


2.安装openjdk-7-jdk

Android 5.0 用到的jdk不在是Oracle 的 jdk ,而是开源的 openjdk,在ubuntu安装好后,使用如下命令安装jdk:

$sudo apt-get install openjdk-7-jdk

安装好后,设置环境变量:

在/etc/profile 文件末尾加上:

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH


3.安装编译依赖的软件

使用如下命令安装依赖软件:

$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
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

ps:14.10在安装依赖软件中应该不会发生软件依赖性的问题,如果发生了,自己根据提示解决就好了


第二部分 编译

-----------------------------------------------------------------------------------------------------------------------------

4.配置Cache

使用如下命令配置cache:

$sudo apt-get install ccache
$source ~/.bashrc


5.下载repo

1)创建repo目录

$ mkdir ~/bin
$ PATH=~/bin:$PATH

2)下载repo(官方的repo下载不了,其他的repo大多比较旧,这个时比较新的,我找了很久大哭

$git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/  

  

克隆下来后将git-repo中的repo文件拷贝到bin目录

$cp git-repo/repo ~/bin/

修改repo文件,设置REPO_URL如下:

REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'


6.初始化repo

1)创建目录

$mkdir ~/aosp

2)初始化repo

$cd ~/aosp
$repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.0.2_r1

ps:在初始化时,提示需要email验证,使用如下命令:

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


7.下载源码

$repo sync

ps:这里就是下载源码了,需要的时间比较长,我下行为1M的宽带需要4小时以上


8.源码编译

ps:编译过程比较就,我电脑双核的,使用单线程编译的,时间位12小时左右,如果使用多线程,时间应该会成倍减少

1)设置cache

$ cd aosp
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G

2)初始化编译环境

$ . build/envsetup.sh


3)选择编译目标包

ps:lunch的方式有很多中,可以使用lunch命令查看,我使用最常用的

$lunch aosp_arm-eng 


4)编译

$make

ps:1.make后面可以更参数:如你的机器时双核,每核双线程的话,使用make -j4,这样速度更快,但编译时使用的内存也更多

     2.make失败或停止后,可以使用make -k 继续编译


9.结果展示:

$emulator &

启动模拟器,效果图:



展开阅读全文

没有更多推荐了,返回首页