学习源代码的下载和编译心得

这一部分主要介绍了下载和编译Android源代码和Linux内核源代码,以及如何搭建这两种开发环境。

一.下载、编译和测试Android源代码

(1)配置Android源代码下载环境

1.创建一个用于存放下载脚本文件(repo)的目录(可将该脚本文件一放到任何目录中,在这里使用~/bin)

#mkdir ~/bin

#PATH=~/bin:$PATH

2.下载repo脚本文件(用于下载Android源代码)

#curl https://dl-ssl.google.com/dl/googlesourse/git-repo/repo > ~/bin/repo

#chmod a+x ~/bin/repo

3.创建用于存放Android源代码的目录(可放在其他目录中)

#mkdir android_source

#cd android_source

4.初始化

#repo init -u http://android.googlesource.com/platform/manifest

5.开始下载Android源代码

#repo sync接下来就是漫长的等待

Android源代码目录结构解析

(2)下载Android源代码中一部分

有2种方法:

方法1.使用repo sync命令(执行repo sync命令前仍然需要使用repo init初始化)

方法2.使用git clone命令下载指定工程源代码

(3)编译Android源代码

1.初始化编译环境

#source build/envsetup.sh 或 . build/envsetup.sh

envsetup.sh脚本文件主要用来初始化一些编译命令,如mm、mmm等。其中mm、mmm是两个很重要的命令,它们都可以编译Android源代码中指定的工程。

2.选择目标,使用lunch命令设置编译目标

#lunch full-eng

3.编译Android源代码

#make -j4(如果在多核的PC上不加-jn命令行参数,make命令只会利用一个CPU核进行编译)

二.下载和编译Linux内核源代码

(1)下载Linux内核源代码。执行下面的命令下载最新的Linux内核源代码:

#git clone http://android.googlesource.com/kernel/common.git

下载完成后,在当前目录下会有一个common目录,进入该目录,执行下面的命令查看当前有哪些远程版本库。

#git branch -a

我们可以根据版本库情况从版本库导出最新Linux内核,如:#git checkout -b android-3.0 remotes/origin/android-3.0

(2)安装Android内核的编译环境

(3)配置和编译Linux内核(假设Linux内核源代码目录是/root/linux_kernel)

1.使用下面的命令编译Linux内核:

#export PATH=/root/compliers/arm-none-linux-gnueabi/bin:$PATH

#cd ~/linux _kernel

#make clean,用于清除大多数由编译生成的文件(.o、.ko等文件),但保留配置文件。

#make

2.一般新下载的Linux源代码根目录没有.config文件。然而这个文件决定了编译生成的Linux内核由哪些功能和模块组成。因此,第一次拿到Linux内核时应先配置linux内核。

#make menuconfig,以界面风格的菜单形式配置Linux 内核

进入“General setup”菜单项的子菜单。选择“Cross-compiler tool prefix”菜单项,按回车键后,要求输入交叉编译器的前缀,输入arm-none-linux-gnueabi-,退出保存设置即可。

在结束所有的设置后,执行make命令编译Linux内核。

成功编译Linux内核后,会在<LInux内核源代码根目录>/arch/arm/boot目录生成一个zImage文件,它就是Linux内核 二进制版本。

三.使用下面的命令在Android模拟器中测试Linux内核(需要使用由goldfish编译而成的zImage文件)

#emulator -avd myavd -kernel /root/kernel/goldfish/arch/arm/boot/zImage

其中myavd是一个AVD名称。

posted @ 2016-04-21 12:44  bbbox  阅读(520)  评论(0编辑  收藏  举报