您的位置:首页 > 产品设计 > UI/UE

Android的环境搭建、内核和源码build

2012-02-01 20:03 381 查看
Android源代码下载和编译:

http://source.android.com/source/initializing.html

按照官方指导,成功Build!

Android开发环境的搭建:

http://developer.android.com/sdk/installing.html

实际上很简单,就四步:

1. 安装JDK,

2. 下载Android SDK,

3. 安装Eclipse(安装插件ADT),

4. 通过ADT将SDK配置进来(Window->Preferences->Android->SDK Location),

5. 通过SDK附带的Android SDK Manager来进行SDK的管理(Window->Android SDK Manager)。

Android内核下载和编译:

背景知识:

Android模拟器运行需要四个文件,分别是:

Kernel镜像:zImage,和Android镜像文件:system.img、userdata.img、ramdisk.img。

执行emulator命令时,如果不带任何参数,则Kernel镜像默认使用Android源码目录下的/prebuilt/android-arm/kernel下的kernel-qemu,而Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img、ramdisk.img。

当然,我们也可以指定镜像文件来运行模拟器:

emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img

一、下载Kernel源代码

官方文档:

http://source.android.com/source/initializing.html

只提到了Kernel的下载,其中goldfish对应的是emulator的Kernel,其它的都是针对各个硬件平台的Kernel,例如msm是高通的,omap是TI的,等等。针对各个硬件平台的Kernel不一定都能build成功,需要做大量的移植工作。所以我们一般都只进行emulator,也就是goldfish的build。

注意:git clone之后,记得git checkout才能拿到指定branch的源代码。

二、准备Tool Chain

首先我们需要准备build kernel需要的tool chain,其实在Android源码目录下的/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin已经提供了一整套tool chain,当然我们也可以单独下载tool chain,只能下载免费的Lite版本,:

http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/

下载“ARM processors”标题下面的“Download the EABI Release”。

下载之后得到一个压缩包,直接解压就可以,并把所在的路径export到~\.bashrc中:

export PATH=$PATH:<tool chain所在的路径>/bin

如果你使用Android源码中提供的tool chain,也需要把所在的路径export到~\.bashrc中:

export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin



保存后,记得同步变化:

$ source ~/.bashrc

三、修改Kernel的Makefile

打开kernel目录下的Makefile文件,进行下面的修改:

1. ARCH ?= 的值设定为: ARCH ?= arm

2. CROSS_COMPILE ?= 的值设定为tool chain的前缀:CROSS_COMPILE ?= arm-eabi-(Android源码的Tool Chain)或者arm-none-linux-gnueabi-(自己下载的Tool Chain)

四、生成.config文件

Linux支持多种平台架构,在Kernel源码的arch目录下,已经将各种平台架构的源码分门别类。为了配置方便,在各种平台架构的目录下,一般都配有一个名为configs的目录。其中,放置着许多已经初步配置好的defconfig文件。

比如我们需要编译arm架构的内核,那我们就可以从arch/arm/configs/中找到各种具体芯片_defconfig,例如,高通的msm_defconfig等等。

Kernel在build时需要根目录里面的.config文件,该文件有以下几种方式获得:

1. 可以通过adb pull /proc/config.gz获得,并gunzip config.gz得到。

2. 可以通过make defconfig,前提是该defconfig已经存在,实际上就是:cp arch/arm/configs/defconfig .config。

3. 可以通过make menuconfig,进行图形化界面的设定。

五、生成Kernel的映像文件为:

~/kernel-goldfish/arch/arm/boot目录下的zImage
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: