注:转载或引用请标明出处    http://blog.csdn.net/luzhenrong45/article/details/9719433

去年用Ubuntu10.10成功下载并编译Android4.0了的源代码,见文章《Ubuntu10.10下载并编译Android4.0》

不过,那时候,刚接触Linux和Android不久,基本上都是百度来的教程,所以,对于Android源代码的下载方式和编译过程并没有太多深入的了解,所以现在趁着Android4.3源代码也提供下载了,重新学习一下。

首先,官方网站对于Android源代码的下载和编译,有极其详尽的介绍,可以此网站自己查阅:  http://source.android.com/source/building.html ,这里,我只想以自己的方式,来记录这个过程。对于过程中遇到的问题,希望自己能够独立解决。

一.安装JDK6

以前已经说过,Ubuntu自带OpenJDK不适合编译Android源代码,所以需要安装sun-jdk,其安装配置方式可参考 《Linux安装配置JDK6》

二.安装Git工具

Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制软件,可以有效,高速地对项目源代码进行管理。它不同于Subversion、CVS这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库(repository),许多个工作目录(working copy),而像Git这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有BitKeeper、Mercurial、GNU Arch、Bazaar、Darcs、SVK、Monotone等),每一个工作目录都包含一个完整仓库,它们可以支持离线工作,本地提交可以稍后提交到服务器上。分布式系统理论上也比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节点而受到影响。

Android源代码采用Git工具来管理,所以需要先安装Git,它的安装方法如下:

apt-get install git-core gnupg

三.安装其他信赖包

  sudo apt-get install  flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc

四. 安装 repo

我们知道,Android是由kernel、Dalvik、Bionic、prebuilt、build等多个Git项目组成,所以为了方便开发者下载Android源代码,Google编写了一个名为Repo的Python的脚本来统一管理这些项目的仓库,里面封装了所有用来下载Android源代码的Git命令,使得Git的使用更加简单。

首先确保在当前用户的主目录下创建一个/bin目录(如果没有的话),然后把它(~/bin)加到PATH环境变量中

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

通过curl下载Repo脚本,保存到~/bin/repo文件中,并赋予repo可执行权限

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

五.下载Android源代码

首先,创建一个空的目录Android4.3(自命名),用来存放等一下下载的源代码,并进入该目录准备下载

$ mkdir ~/Android4.3
$ cd /home/guoke5/Android4.3/

初始化repo

$ repo init -u https://android.googlesource.com/platform/manifest

出现今天的第一个错误,如下图所示,提示“未找到repo命令”

解决方法:将repo路径重新加载到PATH中,然后重新执行命令,发现不会提示以上错误,但是弹出另一错误,Git "fatal: git 1.7.2 or later required",意思是要求更新Git版本到1.7.2或以下

$ PATH=~/bin:$PATH

好吧,现在我们来更新Git版本

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

更新后Git后,进入Android4.3目录,重新执行repo的初始化命令,

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

上述命令执行,会刷刷出现一大堆东西,等待执行完毕,我们就可以执行下面那句命令开始下载源代码了~~~

repo sync 

然后系统会开始源源不断地下载Android4.3源代码了。在此另外说一声,如果想下载其他版本的Android源代码,只需要将刚才那句repo初始化命令替换成以下这句命令:

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

其他版本号可以到这个官方网站查看: http://source.android.com/source/build-numbers.html

然后是漫长的等待,如果下载过程中断了,执行 repo sync,继续下载...

特意注意了一下,从开始下载,到源代码下载完成,大概用了1个钟,下载下来的文件夹足足有7.1G!!!

进入目录,就可以看到里面的各个文件夹了,像大名鼎鼎的sdk,frameworks,packages,tools等等...

好吧,废话不多说,开始编译!!

六. 编译Android源代码

进入源代码下载目录,执行make语句开始编译

 $: cd ~/Android4.3
$: make

好吧,一开始编译就出现错误:/bin/bash: jar:找不到命令

解决方法:做个软链接,将防止等一下还出现类似的java javac,javadoc等命令也找不到的情况,所以,在这里也一起给解决了。

   cd /usr/bin
sudo ln -s -f /usr/lib/jvm/java/jdk1.6.0_41/bin/jar
sudo ln -s -f /usr/lib/jvm/java/jdk1.6.0_41/bin/java
sudo ln -s -f /usr/lib/jvm/java/jdk1.6.0_41/bin/javac
sudo ln -s -f /usr/lib/jvm/java/jdk1.6.0_41/bin/javah
sudo ln -s -f /usr/lib/jvm/java/jdk1.6.0_41/bin/javadoc

重新进入Android源代码目录,make,这一次真正开始编译了,而且CPU满载工作!!!真担心这台普通电脑能不能胜任这任重而道远的工作。

你见过如此霸气的散热么?

编译中。。。

Ubuntu10.04下载并编译Android4.3源代码的更多相关文章

  1. 如何下载和编译Android4.0内核源代码goldfish(图像)

    如何下载Android4.0源代码.请参阅我的博客文章中有(同样是图文教程): http://blog.csdn.net/flydream0/article/details/7036156 怎样编译A ...

  2. 怎样下载并编译Android4.0内核源代码goldfish(图文)

    关于怎样下载Android4.0源代码,请查看我的博客内还有一篇文章(相同是图文教程): http://blog.csdn.net/flydream0/article/details/7036156 ...

  3. 【转】如何下载并编译Android4.0内核源码goldfish(图文)

    原文网址:http://blog.csdn.net/flydream0/article/details/7070392 关于如何下载Android4.0源码,请查看我的博客内另一篇文章(同样是图文教程 ...

  4. 编译Android4.3内核源代码

     --------------------------------------------------------------------------------------------------- ...

  5. 【转】基于Ubuntu 14.04 LTS编译Android4.4.2源代码

    原文网址:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码       ...

  6. 基于Ubuntu 14.04 LTS编译Android4.4.2源代码

    转载自:雨水:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码     ...

  7. ubuntu10.04版本下android源码的编译

    首先是网址:http://software.intel.com/en-us/blogs/2012/03/06/hands-on-notesbuild-android-x86-ics-4-virtual ...

  8. 编译android-4.3.1_r源代码并刷到自己的Galaxy Nexus I9250真机上

    编译android-4.3.1_r源代码并刷到自己的Galaxy Nexus I9250真机上 作者:雨水  日期:2014-04-30 编译源码的目的还是为了自己改动源码,然后还可以执行在相应的手机 ...

  9. Android系统源代码的下载与编译

    http://www.jianshu.com/p/aeaceda41798 目录 1.简介 2.官方同步源代码 3.镜像同步源代码 4.已有源代码更新 5.编译源代码 5.1编译Android 4.1 ...

随机推荐

  1. (2)java堆内存

    java堆内存结构图 [名词解释]--->eden,so,s1通称为新生代对象储区--->tenured称为老年代对象存储区--->s0和s1也称为from和to区域,是两块大小相等 ...

  2. 学习面试题Day09

    一.Java基础部分 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相 ...

  3. Hibernate之HQL介绍

    Hibernate中提供了多种检索对象的方式,主要包括以下种类: 导航对象图检索方式:根据已经加载的对象导航到其他对象 OID检索方式:根据对象的OID来检索对象 HQL检索方式:使用面向对象的HQL ...

  4. java基础之数据类型转换

    在写java程序时,经常会遇到需要数据类型转换,下面我们来介绍一些一些基本数据类型之间的转换. 1.int,folat,double,boolean,long 转换成字符串,其实很简单只需使用一个函数 ...

  5. js会飞的li标签

    当点击左边的li标签的时候,这边的li标签飞到右边去,点击右边的li标签飞到左边来,并且有顺序 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...

  6. -Xms 和 -Xmx 不能设置的太大

    之前我一直有一个疑问,就是-Xms 和 -Xmx不是设置的越大越好吗?现在才明白怎么回事. 通过在命令行中执行 java 或者启动某种基于 Java 的中间件来运行 Java 应用程序时,Java 运 ...

  7. 企业移动互联网O2O微信支付流程图

    过去一周里最受关注的应该就是微信了,腾讯合作伙伴大会微信分论坛的火爆现场,没有亲临其境是无法想象的,近3000人报名,2000多人来到现场,试图进入只能容纳300人的会场…… 闲话不表,进入正题吧,本 ...

  8. matlab 函数说明—ordfilt2

    今天看harris角点实现的源码,在某一个版本中看到了这个函数,不是很理解,doc ordfilt2之后还是不清楚,终于在matlab论坛上搞清楚了ordfilt2的功能.   中文理解函数名就是顺序 ...

  9. org.springframework.web.filter.DelegatingFilterProxy的理解

    org.springframework.web.filter.DelegatingFilterProxy可以将filter交给spring管理. 我们web.xml中配置filter时一般采用下面这种 ...

  10. Eclipse Class Decompiler影响class默认打开方式,重新设置Eclipse默认源码打开方式

    安装Eclipse Class Decompiler插件后,Eclipse中的默认源码打开方式被修改为Eclipse Class Decompiler 这不是我喜欢的,因为我希望,源码从网络中获取,当 ...