Android 自己动手编译android源码

转载 2015年07月10日 20:30:40

最近尝试编译android源码,中间遇到一些问题,记录一下。

 

0x01:

编译之前,强烈建议先看看google的[官方文档],哪怕是使用翻译工具也要看完。

其中提到的编译环境是Ubuntu LTS (14.04),check源码需要100g空间,编译一个版本需要150g空间,那么我们建立虚拟机的时候就要满足这些要求。强烈建议多分配磁盘!!!

下面按照官方文档的要求来操作。

 

0x02: 初始化环境

先考虑清楚你要编译的版本,然后根据版本要求去配置环境,我选择的是4.4.4的。

第一步:安装jdk

Java 7: For the latest version of Android
Java 6: for Gingerbread through KitKat
Java 5: for Cupcake through Froyo

我是4.4.4(KitKat),所以安装java6就好。

目前ubuntu已经不支持命令行安装jdk了,故不采用google的文档,自己去oracle的官网下载安装包,我下载的是:jdk-6u45-linux-x64.bin

将文件copy到虚拟机的 /usr/lib/jvm/java 目录,执行如下命令安装:

sudo chmod u+x /usr/lib/jvm/java/jdk1.6.5_45.bin
/usr/lib/jvm/java/jdk1.6.5_45.bin

安装完毕后在同级目录下会产生jdk1.6.5xxx文件夹,下面配置环境变量:

gedit ~/.bashrc

在最下面添加:

JAVA_HOME=/usr/lib/jvm/java/jdk1.6.0_45
PATH=$PATH:${JAVA_HOME}/bin
CLASSPATH=$CLASSPATH:${JAVA_HOME}/lib

保存后执行:

source ~/.bashrc

然后运行:

java -version

输出:

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

安装成功。

 

第二步:安装依赖包

按照官方文档执行:

sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip

报错:

g++-multilib : Depends: gcc-multilib (>= 4:4.8.2-1ubuntu6) but it is not going to be installed

是安装包依赖问题,用如下分别安装方式解决:

sudo apt-get install gcc
sudo apt-get install g++-multilib
sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 libreadline6-dev:i386 g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev
sudo apt-get install lzop
sudo apt-get install keychain

分别安装后,再执官方文档的命令,看看是否有遗漏:

sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip

此时应该能够顺利安装完成。

 

官方文档还有很多其他配置,可以参考着配置,我没有再去配置其他。

 

0x03:下载源码

这一步没有啥好说的,按照[官方文档]操作即可,其中我指定了下载android-4.4.4_r2:

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

 

0x04:开始编译

这一步也没啥好说的,按照[官方文档]操作即可。其中遇到make版本过高问题:

You are using version 4.0 of make.  Android can only be built by versions 3.81 and 3.82.

没办法,只能降级回来了,先remove掉4.0的make:

sudo apt-get remove make

从[这里]去下载3.81的make安装包,我下载是i386的deb包。

下载后执行命令安装:

sudo dpkg -i make*.deb

至此,再执行编译,应该就没有问题了。

相关文章推荐

Ubuntu15.04 下编译Android4.2.2的问题总结

编译之前我就预感会遇到很多问题, 第一次编译源码,所遇到的问题实在太多了,记录下问题.方便日后参考.  一 .下载源码:       地址:https://source.android.com/sou...
  • doculu
  • doculu
  • 2015年09月18日 15:03
  • 879

make版本不符合要求,不能编译android的解决方法

2015-5-12 Android can only be built by versions 3.81 and 3.82 下载地址ftp://ftp.gnu.org/gnu/ma...
  • lr2131
  • lr2131
  • 2015年05月12日 19:10
  • 6129

make版本不符合要求,不能编译android的解决方法

Android can only be built by versions 3.81 and 3.82 下载地址ftp://ftp.gnu.org/gnu/make/ make3.8.2的安装步...
  • dj0379
  • dj0379
  • 2015年09月08日 16:22
  • 2142

cubie A20 android源码编译 小记

cubie 这个开发板已经购买额一年多,一直没有时间玩,最近感觉自己没啥进展,想多学点东西,翻箱倒柜终于找出来。费话不多说 1、源码下载路径方法 两种下载方法,我是直接到cubie百度网盘上下载的,...

android移植(二)-4的尝试移植过程

板子helper2416    芯片是三星的s3c2416  arm平台   本机系统: opensuse 只是记录过程,写的可能有些乱    android源码下载方法参考以下链接 http:...

ubuntu 14.10 编译 android 4.4kitkat

由于在windows下开发luncher比较麻烦,决定转到在linux下开发,自己编译源码。 以下是安装过程中遇到的问题,需要一一解决: 1、 Andro...

编译Android4.4.4过程中,命令讲解

编译Android4.4.4过程中,命令讲解

make降低版本

Android can only be built by versions 3.81 and 3.82 下载地址ftp://ftp.gnu.org/gnu/make/ make3.8.2的...

Ubuntu中将make的版本降低

最新的Ubuntu版本使用的是make版本是4.0.在编译Android4.4源码包时,由于make版本过高,命令提示行会提示编译Android4.4源码包需要make的版本为3.81或3.82. ...

version 3.82 of make to version 3.81.

Q: build/core/main.mk:42: *************************************************************************...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 自己动手编译android源码
举报原因:
原因补充:

(最多只允许输入30个字)