`
muyu114
  • 浏览: 135216 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Ubuntu下编译Android源码

 
阅读更多

我是在windows下使用虚拟机跑ubuntu的,虚拟机的使用具体参照Ubuntu下的文章

一、 获取 Android 源代码

Git Linux Torvalds Linux 之父)为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制软件,它不同于 Subversion CVS 这样的集中式版本控制系统。在集中式版本控制系统中只有一个仓库( Repository ),许多个工作目录( Working Copy ),而在 Git 这样的分布式版本控制系统中(其他主要的分布式版本控制系统还有 BitKeeper Mercurial GNU Arch Bazaar Darcs SVK Monotone 等),每一个工作目录都包含一个完整仓库,它们支持离线工作,本地提交可以稍后提交到服 务器上。

因为 Android 是由 Kernel Dalvik Bionic Prebuilt build 等多个项目组成,如果我们分别使用 Git 来逐个获取显得很麻烦,所以 Android 项目编写了一个名为 Repo Python 的脚本来统一管理这些项目的仓库,使得项目的获取更加简单。

Ubuntu 8.04 上安装 Git 只需要设定正确的更新源,然后使用 apt-get 就可以了, apt-get 是一条 Linux 命令,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。

apt-get 命令 一般需要 root 权限执行,所以一般跟着 sudo 命令。

sudo apt-get install git-core curl

这条命令会从互联网的软件仓库中 安装 git-core curl

其中 curl 是一个利用 URL 语法在命令行方式下工作的文件传输工具,它支持很多协议,包括 FTP FTPS HTTP HTTPS TELENT 等,我们需要安装它从网络上获取 Repo 脚本文件。

curl http://android.git.kernel.org/repo >~/bin/repo

这句命令会下载 repo 脚本文件到当前主目录的 /bin 目录下,并保存在文件 repo 中。

最后我们需要给 repo 文件可执行权限

chmod a+x ~/bin/repo

接下来我们就可以利用 repo 脚本和 Git curl 软件获取 Android 的源代码了:)

首先建一个目录,比如 ~/android

然后使用下面命令获取源码:

repo init –u git://android.git.kernel.org/platform/manifest.git

这个过程会持续很长的时间(笔者 下载了一天),下载完毕后会看到 repo initialized in /android 这样的提示,说明本地的版本库已经初始化完毕,并且包含了当前最新的 sourcecode

如果我们想拿某个分支版本的代 码,而不是主线代码,需要使用 -b 参数指定 branch 的名字,比如:

repo init –u git://android.git.kernel.org/platform/manifest.git –b cupcake

如果我们只是想获取某一个 project 的代码,比如 kernel/common ,就不需要 repo 脚本了,直接使用 Git 工具即可,如果仔细研究 repo 脚本会发现, repo 脚本其实就是组织 Git 工具去获取各个 Project 并把它们组织到同一个项目 Android 内。

git clone git://android.git.kernel.org/kernel/common.git

我们上面使用 repo 脚本获取了各个项目,那么接下来就需要把整个 Android 代码树同步到本地,如下:

repo sync project1 project2 …

笔者使用 repo sync 命令直接同步全部项目到本地。

二、 源码编译

全部同步完毕后,进入到 Android 目录下,使用 make 命令编译,你会发现出现如下错误提示:

host C: libneo_cgi <= external/clearsilver/cgi/cgi.c
external/clearsilver/cgi/cgi.c:22:18: error: zlib.h: No such file or directory

这个错误是因为我们缺少 zlib1 g-dev ,需要使用 apt-get 命令从软件仓库中安装,如下:

sudo apt-get install zlib1 g-dev

同理,我们还需要依次安装如下软 件

sudo apt-get install flex

sudo apt-get install bison

sudo apt-get install gperf

sudo apt-get install libsdl-dev

sudo apt-get install libesd0 -dev

sudo apt-get install libncurses5-dev

sudo apt-get install libx11 -dev

以上软件全部安装完毕后,运行 make 命令再次编译 Android 源码。

这个时候你会发现出现很多 java 文件无法编译的错误,打开 Android 的源码我们可以看到在 android/dalvik/libcore/dom/src/test/java/org/w3c/domts 下有很多 java 源文件,这意味着编译 Android 之前需要先安装 JDK

首先从 sun 官方网站下载 jdk-6u16-linux-i586.bin 文件并安装它。

Ubuntu 8.04 中, /etc/profile 文件是全局的环境变量配置文件,它适用于所有的 shell 。在我们登陆 Linux 系统时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile ~/.bash_login ~/.profile 文件中的其中一个,执行的顺序和上面的排序一样。如果 ~/.bash_profile 文件存在的话,一般还会执行 ~/.bashrc 文件。

所以我们只需要把 JDK 的目录放到 /etc/profile 里即可,如下:

JAVA_HOME=/usr/local/src/jdk1.6.0_16

PATH=$PATH:$JAVA_HOME/bin:/usr/local/src/android-sdk-linux_x86-1.1_r1/tools:~/bin

然后重新启动一下机器,输入 java –version 命令,提示如下信息代表配置成功:

java version "1.6.0_16"

Java(TM) SE Runtime Environment (build 1.6.0_16-b01)

Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)

在编译完整个项目后,终端会出现如下提示:

Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img
Installed file list: out/target/product/generic/installed-files.txt
root@dfsun2009-desktop:/bin/android #

三、 源码运行

在编译完整个项目后,如果我们需 要观看编译后的运行效果,那么就需要在系统中安装模拟器 android-sdk-linux_x86-1.1_r1 ,这个 SDK 的下载地址为:

linux: http://dl.google.com/android/android-sdk-linux_x86-1.1_r1.zip
mac:
http://dl.google.com/android/android-sdk-mac_x86-1.1_r1.zip
windows:
http://dl.google.com/android/android-sdk-windows-1.1_r1.zip

解压后需要把 /usr/local/src/android-sdk-linux_x86-1.1_r1/tools 目录加入到系统环境变量 /etc/profile 中。

然后找到编译后 android 的目录文件 out ,我们发现在 android/out/host/linux-x86/bin 下多了很多应用程序,这些应用程序就是 android 得以运行的基础,所以我们需要把这个目录也添加到系统 PATH 下,在 $HOME/.profile 文件中加入如下内容:

PATH=”$PATH:$HOME/android/out/host/linux-x86/bin”

接下来我们需要把 android 的镜像文件加载到 emulator 中,使得 emulator 可以看到 android 运行的实际效果,在 $HOME/.profile 文件中加入如下内容:

ANDROID_PRODUCT_OUT=$HOME/android/out/target/product/generic
export ANDROID_PRODUCT_OUT

然后重新启动机器。

下面就可以进入到模拟器目录中并 启动模拟器

cd $HOME/android/out/target/product/generic
emulator -image system.img -data userdata.img -ramdisk ramdisk.img

总结一下 安装过程中的关键点:

1:JDK 版本必须安装

2:利用 下面的命令确保所需软件都被正确安装

sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential python valgrind curl git

3:内存 及虚拟内存保证在2GB以上,可以采用命令行free -m查看内存是否足够,如果内存不够终端停滞

分享到:
评论

相关推荐

    Ubuntu下编译Android源码并运行Emulator2.pdf

    Ubuntu 下编译 Android 源码并运行 Emulator 2 在 Ubuntu 环境中编译 Android 源码并运行 Emulator 2 需要经过多个步骤,包括安装环境、设置环境变量、安装 repo、下载 Android 源码、编译 Android 源码等。 一、...

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

    ### Ubuntu环境下编译Android源码及安装的知识点详解 #### 实验环境介绍 - **操作系统**: Ubuntu 10.04 - **Android版本**: 2.1 - **开发板**: ARM9 Mini6410 - **目标**: 在Ubuntu环境下编译Android 2.1源码并进行...

    Ubuntu编译android4.4源码

    1. Ubuntu版本选择:在编译Android源码时,选择Ubuntu 12.04.5 LTS版本,主要是因为它是Android官方编译推荐使用的系统版本。在文档中提到Ubuntu 14.04存在一些兼容性问题,比如vmware-tools安装后屏幕自适应问题、...

    Ubuntu14.04编译android4.4源码一次性成功

    在整个过程中,耐心和细致是关键,因为编译Android源码是一个复杂的过程,可能需要多次尝试和调试。确保你的电脑硬件配置足够强大,因为编译过程会消耗大量资源。同时,保持与最新的开发文档和社区资源同步,以便...

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

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

    Ubuntu环境下载并编译Android源码

    ubuntu下下载Android源码并编译详细教程,可用

    ubuntu下编译android4.0汇编.pdf

    其次,需要下载 Android 4.0 的源代码压缩包,并解压缩到指定目录下。然后,进入解压后的目录,使用 make 命令开始编译过程。在编译过程中,可以使用 make –jN 命令来指定线程数,以加速编译速度。 在编译过程中...

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

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

    在Ubuntu上下载、编译和安装Android最新源代码

    为了完成这一任务,首先需要在一个虚拟机环境中安装Ubuntu操作系统,这是因为Android源代码不支持在Windows环境下直接构建。 #### 准备工作 1. **硬盘预留空间**:为了确保Ubuntu系统能够顺畅运行,并有足够的空间...

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

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

    Ubuntu 8.04下编译Android源码全过程.doc

    ### Ubuntu 8.04下编译Android源码全过程知识点详解 #### 一、获取Android源代码 在本文档中,介绍了如何在Ubuntu 8.04系统环境下获取Android源代码的过程。此过程主要涉及到了Git版本控制系统的使用以及Repo脚本...

    Ubuntu系统下Android源码编译.pdf

    本文将深入探讨Ubuntu系统下Android源码的编译过程,包括必要的软件安装、环境变量配置、源码获取以及编译过程中可能遇到的问题及其解决方法。 首先,要进行Android源码编译,必须确保Ubuntu系统已安装了基础的开发...

    Ubuntu 10.04下编译Android源码全过程

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

    ubuntu下android源码下载

    下载并编译Android源码可以让我们深入了解其工作原理,进行自定义修改,或为特定设备创建定制固件。 ### Ubuntu下Android源码下载步骤详解 #### 1. 安装Git Git是一个分布式版本控制系统,用于跟踪对项目源代码的...

    ubuntu下编译android4.0.pdf

    编译Android源码之前,需要安装一系列的依赖包,包括但不限于: 1. `git-core` - 用于管理源码仓库。 2. `gnupg` - 用于验证软件包的签名。 3. `sun-java6-jdk` - 提供Java开发环境。 4. `flex` 和 `bison` - 用于...

    在Ubuntu上编译android.pdf

    在Ubuntu系统上编译Android源码是一个复杂但非常有趣的过程,涉及到许多软件开发的知识点。下面是对给定文件内容中提到的相关知识点的详细说明: 1. **Ubuntu操作系统版本**:文档中提到了Ubuntu 7.10和Ubuntu 8.04...

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

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

Global site tag (gtag.js) - Google Analytics