`

ubuntu10.04下编译android2.3源码

 
阅读更多

首先呢,这篇博客是1年半前写的,当时发表在iteye上(地址:http://396999864-qq-com.iteye.com/blog/1465453)。因为博客搬家我嫌麻烦,所以就直接粘贴过来了。

首先编译2.3的需要的是JDK6,最好不要使用openJDK。

1、安装JDK
网上一般的做法是:sudo apt-get install sun-java6-jdk,但是这是错误的,到官方网站上下不到JDK6,官方源只有Open JDK,Sun JDK竟然没有了,难道这是开源界对Oracle收购Sun的一个还击?

这里推荐一个博客,方法是正确的,我经过了测试,地址是:http://hi.baidu.com/%CE%DE%C0%B5%BE%FD%D7%D32008/blog/item/b0dcba95e22fbc197af48026.html(我们就是采用的这种手动安装方法,根据机器是32位还是64位选择下载相应的JDK)。

2、安装需要的包
这里就没必要看官方文档了,太繁琐。
记住我们是ubuntu10.04,我们的是32位的,所以只要:sudo apt-get install git-core gnupg flex bison gperf build-essential \zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \ libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \ libxml2-utils xsltproc这样就ok了哇。
3、下载源码
这是最关键的一步了。
(1)、创建一个bin目录,跟桌面是平级的
mkdir ~/bin
PATH=~/bin:$PATH
(2)、下载repo脚本,并确保这个是可以执行的(这个步骤可能要等一会才行),并且改变下这个repo文件的权限
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
(3)、创建一个文件夹存放android2.3的源码
这个就不用说了把(记住要在bin下哦)
比如:mkdir android2.3
cd android2.3
(4)、利用repo下载
repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.3_r1(注意是下载2.3的版本哦)

哈哈,这个时间要取决于你的网速了,大概要5G,妈的公司的网连不上去,只能连隔壁公司的网,但是人家晚上不上班,所以晚上下不了,一直拖了3天才下完,唉!!!!
4、编译源码
下面就是编译我们的源码了,请按照步骤来
export Android_JAVA_HOME=$JAVA_HOME
进入存放源码的文件夹,比如cd ~/Android2.3
source build/envsetup.sh
lunch(默认选择,直接enter)
make
你以为这样就好了,那就错了哇

在make的时候会提示出错:
   ************************************************************
   You are attempting to build on a 32-bit system.
   Only 64-bit build environments are supported beyond froyo/2.2.
   ************************************************************
   因为Android2.3默认是64位的系统上编译,需要手动修改build/core/main.mk,把这个判断部分注释掉:
   #ifneq (64,$(findstring 64,$(build_arch)))
   #$(warning ************************************************************)
   #$(warning You are attempting to build on a 32-bit system.)
   #$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
   #$(warning ************************************************************)
   #$(error stop)
   #endif
   重新make,如果是安装了JDK6版本,会又报错:
  Docs droiddoc: out/target/common/docs/api-stubs
   Could not load ‘clearsilver-jni’
   java.library.path = out/host/linux-x86/lib
   make: *** [out/target/common/docs/api-stubs-timestamp] Error 45
   make: *** Waiting for unfinished jobs….
   Could not load ‘clearsilver-jni’
   java.library.path = out/host/linux-x86/lib
   make: *** [out/target/common/docs/doc-comment-check-timestamp] Error 45
   这是由于clearsilver在编译时如果检测到使用Java JDK 6,就使用64位编译,因为Google的一个员工更新了几个文件。这里可以看到详细的修改记录:http://android.git.kernel.org/?p=platform/external/clearsilver.git;a=commitdiff;h=d36910a8110d8377b22301274d2b5131a732a72b
   修改这几个文件,该回到32位编译环境即可:
   external/clearsilver/cgi/Android.mk
   external/clearsilver/java-jni/Android.mk
   external/clearsilver/util/Android.mk
   external/clearsilver/cs/Android.mk
   把编译选项-m64改成-m32即可
   重新make,大概不到一个小时就make完了。

在android2.3目录下的out/target/product/generic文件夹下会看到system.img,这样算是编译正确了

一切搞定!!打出emulator,看看是否出现模拟器,出现了就是正确的哦


但是如果你关闭这个终端新打开一个终端的时候会发现打上emulator突然就不出现模拟器了,这是什么情况呢,别急,因为你没有SDK,下面的指令将教你如何编译出sdk
4、编译SDK
这一步在官方网站上没有说明,但是在源代码文件夹里面有文档提到了,就是在android2.3/sdk/docs目录下有一个叫 howto_build_SDK.txt的文件介绍了如何编译SDK
根据这个文档可以看出我们编译SDK的正确指令是
进入源码的目录
$ . build/envsetup.sh
$ lunch sdk-eng
$ make sdk
如果出现了Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip的时候 就表示编译成功了 其中<build-id>默认是系统的用户名
5、设置环境变量
最后一步设置下环境变量(我这里修改全局变量,相当于windows下面的系统环境变量,对所有的用户有效),建议手动修改
找到/etc/profile(这个是启动系统的时候运行的)
在最后一行前面加上以下几句(前面3句是java环境,后面3句是android的环境):
export JAVA_HOME=/usr/java/jdk1.6.0_30
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export SDK_HOME=/media/Learn/android2.3source/Android2.3/out/
export PATH=$SDK_HOME/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=$SDK_HOME/target/product/generic
(如果不能打开模拟器,需要执行以下source /etc/profile)

分享到:
评论

相关推荐

    ubuntu 10.04下编译Android源码技术文档

    ### Ubuntu 10.04下编译Android源码技术文档 #### 一、环境准备与配置 在Ubuntu 10.04环境下编译Android源码是一项复杂但极具价值的任务。为了确保编译过程顺利进行,首先需要完成一系列准备工作。 1. **系统更新...

    Ubuntu 10.04下编译Android源码全过程

    在Ubuntu 10.04环境下编译Android源码的过程是一项复杂的任务,涉及到多个步骤和技术。首先,要了解Git,这是一个分布式版本控制系统,由Linux Torvalds创建,用于管理Linux内核开发。与传统的集中式版本控制系统如...

    Ubuntu10.04下编译Android源码全过程.pdf

    ### Ubuntu 10.04 下编译 Android 源码全过程详解 #### 一、获取 Android 源代码 **Git与集中式版本控制系统对比** - **Git**:由 Linux Torvalds 开发,是一种分布式版本控制系统。与 Subversion 和 CVS 这样的...

    Ubuntu平台下Android2.3源码下载编译全过程

    总之,编译Android 2.3源码在Ubuntu环境下需要安装必要的软件,设置环境,初始化源码仓库,下载源码,最后进行编译。整个过程可能遇到各种问题,如网络连接、文件权限或配置错误等,需要根据实际情况调整和解决。在...

    Ubuntu-32位机安装编译Android2.3源码及内核

    在本文中,我们将深入探讨如何在Ubuntu 32位系统上安装、编译Android 2.3源码以及内核,并解决编译过程中可能遇到的问题。Android 2.3,也被称为Gingerbread,是Android操作系统的一个重要版本,对开发者来说具有...

    Ubuntu_10.04下编译Android源码实用.pdf

    【Ubuntu 10.04下编译Android源码实用指南】 在Ubuntu 10.04系统中编译Android源码是一项复杂的过程,需要掌握Git版本控制系统以及Android的Repo工具。Git是Linux Torvalds为管理Linux内核开发而创建的分布式版本...

    (修正的)Ubuntu_10.04下编译Android源码全过程.doc

    ### Ubuntu 10.04 下编译 Android 源码全过程详解 #### 一、获取 Android 源代码 1. **Git 的介绍与安装**: - Git 是一种分布式版本控制系统,由 Linux Torvalds 为了更好地管理 Linux 内核开发而创建。 - **...

    Ubuntu-32位机安装编译Android2.3源码及内核.doc

    在本文档中,我们将深入探讨如何在Ubuntu 10.04 32位系统上安装和编译Android 2.3(代号Gingerbread)的源代码和内核。这一过程涉及到多个步骤,包括Java开发环境的配置、必要的软件包安装、Android源码的获取与编译...

    Ubuntu 10.04下Android编译环境搭建

    在Ubuntu 10.04环境下,为了搭建Android的编译环境,我们需要完成一系列的步骤。这个过程主要包括安装Java Development Kit (JDK),配置相关的环境变量,安装必要的编译工具和依赖包,以及解决特定的系统问题。以下...

    ubuntu10.04下deadbeef完美支持源码

    标题 "Ubuntu 10.04 下 Deadbeef 完美支持源码" 提到的是在 Ubuntu 10.04 这个 Linux 发行版上安装和使用 Deadbeef 音乐播放器的源码编译方法。Deadbeef 是一款轻量级、高度可定制化的音频播放器,它支持多种音频...

    在Ubuntu10.04下载和编译android 4.0源代码(三)

    在Ubuntu10.04下载和编译android 4.0源代码(三)

    Ubuntu环境下编译android源码及安装

    本教程详细介绍了如何在Ubuntu 10.04环境下编译Android 2.1源码并安装到ARM9 Mini6410开发板上。整个过程包括了JDK环境的准备、所需编译包的安装、源码的编译以及文件系统的生成等关键步骤。对于想要深入理解Android...

    在Ubuntu10.04下载和编译android 4.0源代码(一)

    在Ubuntu10.04下载和编译android 4.0源代码(一)

    Ubuntu10.04(64位)下载并编译Android2.2源码.pdf

    【Ubuntu 10.04 (64位)下载并编译Android 2.2源码】 在Ubuntu 10.04 (64位)系统中编译Android 2.2 (Froyo)源码的过程涉及多个步骤,包括环境准备、源码下载和编译。下面是对这些步骤的详细解释: 1. **环境准备**...

    ubuntu10.04 安装 opencv2.2.0

    ### Ubuntu 10.04 下安装 OpenCV 2.2.0 详细步骤 #### 知识点一:Ubuntu 10.04 环境介绍 - **Ubuntu 10.04 LTS**(代号 Lucid Lynx)是 Ubuntu 的一个长期支持版本,发布于2010年4月29日。它提供了大量的软件包,...

    android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6

    ### Android 2.2 源码编译指南:Ubuntu 10.04 (X86) + Android 2.2 + JDK 1.6 #### 一、环境搭建 在进行Android 2.2源码编译之前,我们需要准备一个合适的开发环境。根据题目中的描述,本指南将详细介绍如何在...

    Ubuntu10.04下配置MTK6573的Android编译运行环境

    在Ubuntu 10.04操作系统中配置MTK6573的Android编译运行环境是一项复杂的任务,涉及到多个步骤和必要的组件安装。MTK6573是联发科(Mediatek)推出的一款针对智能手机和平板电脑的处理器,而Android则是运行在其上的...

    Ubuntu10.04 --32位系统下编译Android 4.0

    ### Ubuntu 10.04 32位系统下编译Android 4.0的知识点 #### 一、环境准备与软件安装 1. **Java环境配置:** - 更新软件包列表: ```bash sudo add-apt-repository "deb ...

Global site tag (gtag.js) - Google Analytics