android 4.2 源码在64位Ubuntu编译

1.获取Android源代码

       Android官网给出了从网上下载源代码的方法,具体流程如下网址所示:http://source.android.com/source/downloading.html

      按照上面的方法,我寝室10M的网,一晚上不知道下载了多少,每次repo sync都感觉会和服务器断开连接,然后果断放弃了从官网下载源代码的想法,直接在网上下载别人已经下载好的代码:http://115.com/lb/5lbqyjx7

 

2.安装编译需要的工具

      官网给的流程,可以参考一下:http://source.android.com/source/initializing.html

JDK

    貌似很早之前Ubuntu里面的JDK就被换成了open-jdk,试了下官网给的方法:

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" $ sudo apt-get update $ sudo apt-get install sun-java6-jdk

    结果不怎么给力,好像也安装不了,记得以前可以的...直接去oracle网站下载JDK,现在一进入下载就只有JDK1.7的,找了一下JDK1.6的下载地址,如下:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR,我记得我当时下载是单独注册了一个账号的,没有账号不让下载,太TM坑爹了。

    有了安装bin安装文件,我是直接放在我的用户目录下面的,然后执行:

   $chmod +x jdk-6u45-linux-x64.bin

   $./jdk-6u45-linux-x64.bin 

   执行后会在用户目录里面生成jdk目录:/home/chadm/jdk1.6.0_45。然后配置Java环境,执行命令:

   ~$ sudo gedit /etc/profile

    在文件尾加上:

         export JAVA_HOME=/home/chadm/jdk1.6.0_45
         export JRE_HOME=/home/chadm/jdk1.6.0_45/jre  
         export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
         export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH  

   保存文件,然后执行:source /etc/profile。

   运行java -version和javac -version

 

安装需要的包

$ 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-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386-linux-gnu/libGL.so

直接复制运行会出现如下错误:

下列软件包有未满足的依赖关系:
 libgl1-mesa-glx:i386 : 依赖: libglapi-mesa:i386 (= 8.0.4-0ubuntu0.6)
                        推荐: libgl1-mesa-dri:i386 (>= 7.2)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

将里面的libgl1-mesa-glx:i386修改为 libgl1-mesa-dri:i386,运行后可以正常安装

 

3.编译Android源代码

   官网给的文档 http://source.android.com/source/building-running.html

   运行如下指令:

. build/envsetup.sh
lunch full-eng
make -j4

    编译的时候出现问题了,提示使用make update-api,然后再使用make -j4