`
ice.k
  • 浏览: 287273 次
  • 性别: Icon_minigender_1
  • 来自: 荷兰
社区版块
存档分类
最新评论

Ubuntu 11.04 64位 编译 Android 2.3 源码

 
阅读更多

首先,我建立了JNI的编译开发环境。

用VM安装Ubuntu

*. 安装Ubuntu:ubuntu-11.04-desktop-amd64.iso

1. JDK的安装:
        自动安装:Ubuntu的源提供一个JDK 是sun-java6-jdk   可以用Synaptic Package Manager(新立得)来安装,当然也可以在shell中执行下面命令来安装
  $ sudo apt-get install sun-java6-jdk
        手动安装:
        去官网下载最新的linux版本的JDK,我下载的是jdk-6u26-linux-x64.bin   。/usr目录主要用来存放Ubuntu系统中用到的一些软件,/usr/lib/jvm/是系统默认的JDK目录,所以我也打算把自己下载的JDK安装到该目录下。/usr/lib/jvm/新建一个一文件件,把jdk-6u26-linux-x64.bin   拷贝到该文件夹下然后执行下面命令

        sudo chmod u+x /usr/lib/jvm/java/jdk-6u26-linux-x64.bin 修改bin文件权限,使其可执行然后,执行
        sudo ./jdk-6u26-linux-x64.bin安装

安装完成以后会在/usr/lib/jvm/java/下生成一个jdk1.6.0_26的文件夹。到此JDK 安装完毕。下面配置环境变量:

        command:
        sudo vi /etc/environment
        PATH="......:/usr /lib/jvm/java/jdk1.6.0_26/bin"(这个地方有引号,下面的classpath和java_home都没有引号)
        CLASSPATH=.:/usr/lib/jvm/java/jdk1.6.0_26/lib
        JAVA_HOME=/usr/lib/jvm/java/jdk1.6.0_26

        source /home/用户名/.bashrc  (执行source命令时,前面不能家sudo 命令,因为source命令并不属于系统命令)
        此时,环境变量设置成功。

        由于Ubuntu11.04 中自带有默认的jdk--openjdk,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作。
  执行:
  sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/jdk1.6.0_26/bin/java 300
  格式:sudo update-alternatives --install /usr/bin/java java 用户的jdk的bin目录/java 300

  sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/jdk1.6.0_26/bin/javac 300
  格式同上
  通过这一步将我们安装的jdk加入java选单。
  然后执行:
  sudo update-alternatives --config java
  通过这一步选择系统默认的jdk
  这样,再在shell中输入:
  java -version时,就会显示系统使用的java是sun的java,至此,jdk安装成功,环境变量设置成功。

2. 安装eclipse

去官网下载最新的eclipse,解压就可以使用,但是要下载对应的eclipse ,64位系统就用64位的eclipse,32位系统就下载32的,刚开始装上64位Ubuntu的时候就忘记这个问题,从朋友那里拷贝过来一个eclipse,捣鼓半天没成功,后来才搞清楚那个eclipse是32位的

 

3. 配置ADT

现在网上大家windows开发环境的文章一大堆,可以参考,当然可以看官网,网址:http://developer.android.com/sdk/eclipse-adt.html最新的ADT  都到ADT 12.0.0 (July 2011)

4.配置SDK

http://developer.android.com/sdk/index.html下下载linux的SDK-----Android-sdk_r12-linux_x86.tgz 。然后更新,更新需要一段事件,耐心等待。最后就是在在Eclipse下配置SDK,window---->preferences>Android 下配置

5. 安装ndk

a、下载NDK包,下载地址:

http://www.ideasandroid.com/android/sdk/android-ndk-r4-linux-x86.zip

http://dl.google.com/android/ndk/android-ndk-r4b-linux-x86.zip


b、解压,我们这里将解压到/home/ideasAndroid/dev/目录下。

解压后目录结构为:/home/ideasAndroid/dev/android-ndk-r4

c、配置path路径(此步也可以省略,只是以后命令要加上路径/home/myleft/Android-ndk-r4b/ndk-build):

命令行执行sudo gedit /etc/profile,在文件末尾加入如下内容:

#set NDK env

NDKROOT=/home/myleft/Android-ndk-r4b

export PATH=$NDKROOT:$PATH

保存后,重启机器。至此 Android NDK 安装完毕。

d、编译sample工程:

执行命令 cd /home/myleft/Android-ndk-r4b/samples/hello-jni 进入示例项目根目录,然后执行如下命令:

ndk-build

您将看到系统会编译出libhello-jni.so

至此示例项目编译完成,可将hello-jni项目导入ADT进行进一步的测试。

JNI的编译开发环境建立完毕!

说明:下面如果有修改文件不好保存或无法打开可能是权限问题要进入那个目录修改权限 chmod 777 filename

注意 vm 虚拟机一定要分配给Ubuntu的内存要大于等于 1.5 G ,否则编译不过。

 

1安装下载源码所需要的工具 
1.1
   sudo apt-get install git-core curl
   这条命令会从互联网的软件仓库中安装 git-core 和 curl
1.2
   mkdir ~/bin
   PATH=~/bin:$PATH
   在home目录下建立bin目录并设置环境变量
1.3
  curl http://Android.git.kernel.org/repo >~/bin/repo
  这句命令会下载 repo 脚本文件到当前主目录的/bin 目录下,并保存在文件repo 中。
1.4
   chmod a+x ~/bin/repo
   修改 repo 文件可执行权限
1.5
   执行下面的命令创建并进入空文件夹
   mkdir yourdirectory
   cd yourdirectory
2repo客户端初始化
   2.1
        下面是官网给的命令,但在公司行不通会报Connection timed out的错误,但在家直接用估计可以
        repo init -u git://Android.git.kernel.org/platform/manifest.git -b cupcake
   2.2
        在公司同步要先将bin里的.repo文件的
        REPO_URL='git://Android.git.kernel.org/tools/repo.git' 
        改成
        REPO_URL='http://Android.git.kernel.org/tools/repo.git'
        然后命令改成下面这个(注意后面的版本号写法和官网不太一样,如果写-b Gingerbread的话会找不到版本
        repo init -u http://Android.git.kernel.org/platform/manifest.git -b android-2.3.3_r1
      (参考 http://blog.csdn.net/shaohui99/archive/2010/06/29/5702483.aspx)
   2.3
        执行上面的命令可能还会报个IOError找不到文件(暂时还不知道为什么)
    但执行下面两条命令
     touch ~/.gitconfig
         rm -rf .repo
    后再执行2.2的命令就可以同步了
    成功的话会叫你填写自己的名字和邮箱
3下载源码
3.1
   执行下面的命令会开始下载代码
   repo sync
   如果也有 Connection timed out错误就找到你在1.5时创建的目录下找到.repo文件夹打开后找到下载清单manifest.xml(manifest.xml为隐藏文件,得显示隐藏文件后才能看见
   打开manifest.xml
   修改
   fetch="git://Android.git.kernel.org/"
   为
   fetch="http://Android.git.kernel.org/"(http的穿透
   然后再执行repo sync,成功后会下载代码要几个小时(我下载了一天)

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

4编译前安装一些Android编译需要的工具:

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libxml-simple-perl

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


5编译
5.1
  先进入1.5创建的空目录
  再执行 make 命令

编译后的文件在out文件夹中

img在: /home/Android/你的代码目录名字/out/target/product/generic

各种工具在:/home/Android/你的代码目录名字/out/host/linux-x86/bin

 

验证:

修改 ~/.bashrc 文件, 增加下面两行:

export PATH=$PATH:/home/Android/你的代码目录名字/out/host/linux-x86/bin

export Android_PRODUCT_OUT=/home/android/你的代码目录名字/out/target/product/generic

然后执行 source ~/.baserc 文件使其立即生效

然后执行 emulator 如果启动,就成功了。

6生成SDK
make PRODUCT-sdk-sdk
编译完成后会在/work/froyo/out/host/linux-x86/sdk/目录生成sdk

解决编译错误:

编译SDK时遇到的错误信息:
Package SDK: out/host/linux-x86/sdk/Android-sdk_eng.xx_linux-x86.zip
sdk/build/tools.atree:46: couldn't locate source file: usr/share/pc-bios/bios.bin
sdk/build/tools.atree:47: couldn't locate source file: usr/share/pc-bios/vgabios-cirrus.bin
...

 [out/host/linux-x86/sdk/Android-sdk_eng.lct_linux-x86.zip] Error 44

前两个不是在/usr/share 里面,因为它写的是usr/share/pc-bios/bios.bin
表示是当前目录的usr,而不是/usr
我找了一下,是在prebuilt/common/下面,只需要把路径替换掉就好了

分享到:
评论

相关推荐

    Ubuntu 64 位编译Android源码出错解决办法

    在进行Ubuntu 64位系统下Android源代码的编译过程中,可能会遭遇一系列技术障碍,以下将详述在Ubuntu 11.04(64位)编译Android 2.3源码时常见的错误及其解决方案,以帮助开发者顺利通过这些难关。 ### 错误一:`/...

    ubuntu 11.04下Qt开发环境的安装

    ### Ubuntu 11.04下Qt开发环境的安装指南 #### 一、引言 在Linux环境下搭建Qt开发环境对于初学者来说可能会遇到不少挑战。本文将详细介绍如何在Ubuntu 11.04上安装Qt开发环境,并分享一些实用的经验技巧。本教程...

    openfoam ubuntu11.04/10.04安装

    ### OpenFOAM在Ubuntu 10.04/11.04上的安装步骤与注意事项 #### 一、概述 本文旨在提供一个清晰且详细的指南,帮助用户在Ubuntu 10.04或11.04操作系统上安装OpenFOAM 2.1.1版本。OpenFOAM是一款开源计算流体力学...

    Android源码 在Ubuntu上下载,编译和安装

    本文将详细介绍这个过程,包括环境准备、下载源码以及编译源码。 首先,环境准备至关重要。为了顺利进行源码操作,至少需要预留20GB的磁盘空间,并确保至少有3GB的内存,因为同时运行Ubuntu虚拟机和编译过程需要较...

    详细android源码下载编译图文教程定义.pdf

    Android源码下载与编译是Android开发者深入理解操作系统工作原理和进行系统级开发的重要步骤。以下是一份详细的Android源码下载和编译教程。 首先,你需要安装必要的工具,包括Git和Curl。Git是一个分布式版本控制...

    详细android源码下载编译图文教程.pdf

    总的来说,这篇教程详细介绍了在Ubuntu环境下下载和编译Android源码的过程,包括必备工具的安装、`repo`的使用以及如何获取特定项目或版本的源码。这对于任何希望深入学习Android系统的人来说,都是一个宝贵的指南。...

    安卓内核编译教程文档

    本教程主要针对Linux环境下,特别是Ubuntu 11.04 (32位)主机上的HTC Desire HD (G10)设备,以2.3版本的官方系统(内核版本2.6.35)为例进行讲解。以下将详细介绍整个编译流程。 **第一步:编译准备** 在开始编译前...

    已经编译好的Osmocom-BB

    Osmocom-BB的编译和测试过程通常涉及到多个步骤,包括安装依赖库、配置编译选项、编译源码以及执行各种测试用例以确保软件功能正常。在Ubuntu 11.04上顺利运行,意味着它应该兼容该版本的库和工具链,能够有效地处理...

    minigui1.3.3移植所需全部源码包

    4. **编译与安装**:执行`make`命令编译源码,然后使用`sudo make install`将编译好的库和可执行文件安装到系统默认位置。 5. **qvfb设置**:qvfb是用于模拟framebuffer的工具,对于没有硬件显示器的环境特别有用。...

    嵌入式系统项目报告借鉴.pdf

    (1)在 Ubuntu11.04 上下载 Android 专用源码,完成 Android 系统的软件开发环境的搭建; (2)在 EVM37x 开发板上搭建 Android 系统的硬件开发环境; (3)Android 系统的 init 进程和 init.rc 文件简单解析; (4...

    Android4.0编译烧写[归纳].pdf

    首先,需要安装Ubuntu 11.04作为开发环境,推荐分配至少60GB的硬盘空间,1.5GB的内存和1.5GB的SWAP分区。安装完成后,通过`sudo passwd`设置root密码,并在root权限下进行后续操作。 2. **软件安装**: 使用`apt-...

    Android4.0编译烧写[参照].pdf

    建议在Ubuntu 11.04环境下进行,因为该版本对Android编译提供了良好的支持。虚拟机的硬盘至少需要60GB,内存1.5GB,并设置1.5GB的交换分区。安装完成后,设置root密码以便后续的root权限操作。 接下来,安装必要的...

    android-底层开发.docx编程资料

    - **Ubuntu版本**:选择最新的Ubuntu版本,例如Ubuntu 11.04,以确保支持Android源码编译。 - **Git安装**:通过命令`sudo apt-get install git-core gnupg`在Ubuntu上安装Git。 - **Java SDK**:通过命令`sudo ...

    搭建arm-linux-gcc-4.6.1中搭建交叉编译环境.pdf

    本文将指导您在 Ubuntu 11.04 系统中搭建 ARM-Linux-GCC-4.6.1 交叉编译环境,整个过程可以分为八个步骤:下载源码包、建立编译目录并设置环境变量、安装内核头文件、安装二进制工具、建立初始编译器工具链、建立 ...

Global site tag (gtag.js) - Google Analytics