`
- 浏览:
65016 次
- 性别:
- 来自:
北京
-
android 内核编译(环境 ubuntu 11.04)
一、获取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
这个错误是因为我们缺少zlib1g-dev,需要使用apt-get命令从软件仓库中安装,如下:
sudo apt-get install zlib1g-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: [url]http://dl.google.com/android/android-sdk-linux_x86-1.1_r1.zip [/url]
mac: [url]http://dl.google.com/android/android-sdk-mac_x86-1.1_r1.zip [/url]
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查看内存是否足够,如果内存不够终端停滞
转自:
http://blog.csdn.net/dongfengsun/archive/2009/10/16/4679902.aspx
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
ubuntu11.04上编译omap3530内核存在问题解决方法.使用的是天漠公司的sbc8100开发板
ubuntu11.04的详细安装方法,其中包括自动分区和手动分区的步骤,希望能对广大用户有帮助!
on an Ubuntu 11.04 desktop using Eclipse, the Android SDK, and PhoneGap. I will describe how to build Android apps from the command line with PhoneGap and from the GUI with Eclipse and PhoneGap and ...
最新的Ubuntu 11.04安装指南(详细图解)
Ubuntu11.04 下载
ubuntu 11.04下android开发环境的搭建
最快最全的Ubuntu11.04源,速度超快
CSI Tool 集成安装包(适配Ubuntu 11.04系统,Intel 5300 无线网卡) csitools
ubuntu11.04安装wine1.3的图文方法。 ubuntu11.04安装wine1.3的图文方法。 ubuntu11.04安装wine1.3的图文方法。 ubuntu11.04安装wine1.3的图文方法。
ubuntu11.04搭建Android开发环境步骤及所遇到的问题
ubuntu11.04下android开发环境的搭建.pdf
硬盘全新安装ubuntu11.04 硬盘全新安装ubuntu11.04
ubuntu11.04如何从图形界面切换的终端及root 用户的切换ubuntu11.04如何从图形界面切换的终端及root 用户的切换ubuntu11.04如何从图形界面切换的终端及root 用户的切换ubuntu11.04如何从图形界面切换的终端及root ...
Ubuntu 11.04 安装后要做的20件事情 Ubuntu 11.04 安装后要做的20件事情 Ubuntu 11.04 安装后要做的20件事情
ubuntu11.04下搭建android平台详细过程介绍
安装ubuntu11.04的安装,亲测可用,放心下载 Ubuntu(又称乌班图)是一个以桌面应用为主的开源GNU/Linux操作系统,Ubuntu 是基于Debian GNU/Linux,支持x86、amd64(即x64)、ARM和ppc架构,由全球化的专业开发团队...
minigui1.3.3移植至ubuntu11.04详细教程
ubuntu11.04制作离线镜像源的方法文档,偶亲自试验成功,并制作出文档与大家交流。