标签:
4.1下载编译和测试源代码
Android源代码由很多东西组成,一种是Android系统应用程序的代码,android SDK带的各种工具,android NDK的源代码,HAL源代码。
1.配置Android源代码下载环境
在下载Android源代码之前必须要在Linux终端执行一系列命令来配置下载环境。
第一步:创建一个用于存放下载脚本文件(repo)的目录
# mkdir ~/bin
# PATH=~/bin:$PATH
第二步:下载repo脚本文件
# curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
# chmod a+x ~/bin/repo(repo是用python对Git的一个封装,简化下载android源代码的操作)
第三步:创建用于存放Android源代码的目录
# mkdir android_source
# cd android_source
第四步:初始化
# repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_rl
第五步:开始下载Android源下载过程中网络几乎做不了其他的事情代码
# repo sync
执行上面的命令后,会现实一些信息然后开始下载Android源代码,接下来是漫长的等待,按国内大多数人能达到的网速,至少要4个小时才能下完。
下载一部分Android源代码
方法1 使用repo sync命令
# repo sync platform/bootable/recovery
方法2 使用git clone 命令
# git clone http://android.googlesourse.com/<project name>
2编译Android源代码
第一步:初始化编译环境
# source build/envsetup.sh
或
# . build/envsetup.sh
第二步:选择目标
# lunch full-eng
第三步:编译Android源代码
# make –j4
不仅下载Android源代码需要较长时间,完全编译Android源代码也需要很长的时间。当编译完成后,会在Android源代码根目录中生成一个out目录。
Out 目录是存放编译Android源代码生成的目标文件的默认目录
-- target(表示目标机,如果编译时候定义TARGET_STRIP_MODULE=false的话,这个目录为debug/target) 主要的两个目录为host和target,前者表示在主机(x86)生成的工具,后者表示目标机(默认为ARMv5)运行的内容。
4.2下载和编译linux内核源代码
下载最新版的内核源代码
# git clone https://android.googlesourse.com/kernel/common.git
查看有哪些远程版本库
# git branch -a
导出Linux3.0的内核
# git check out -b android-3.0 remotes/origin/android-3.0
下载该内核
# git clone http://android,googlesourse.com/kernel/goldfish.git
导出goldfish
# git checkout -b android-goldfish-2.6.29 remotes/origin/android-goldfish-2.6.29
Linux内核源码目录
arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。
block: 部分块设备驱动
crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。
Documentation
drivers:设备驱动程序,每个不同的驱动占用一个子目录,如char、block、net、mtd、i2c等。
fs:支持各种文件系统,如EXT、FAT、NTFS、JFFS2等
include:头文件,与系统相关的头文件放置在include/linux子目录下。
init:内核初始化代码。
ipc:进程间通信的代码
kernel:内核的最核心部分,包括进程的调度、定时器等,而和平台相关的一部分代码放在arch/*/kernel目录下。
lib:库文件代码。
mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。
net:网络相关代码,实现了各种常见的网络协议。
安装Android内核的编译环境
1.将arm-linux-gcc-4.3.2.tgz文件和arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar,bz2文件复制到工作目录
2.解压上面的两个文件
3.验证交叉编译器是否安装成功
# ls /user/local/arm -1
4.安装libncurses5
# apt-get install libncurses5-dev
配置和编译Linux内核
# export PATH=/root/compilers/arm-none-linux-gnueabi/bin:$PATH
#cd ~/linux_kernel
#make clean
#make
在Linux源代码目录执行以下四个配置命令
Make config
Make manuconfig
Make oldconfig
Make xconfig
成功编译Linux内核后,会在<Linux内核源码目录>/arch/arm/boot目录生成一个zlmage文件,该文件是Linux内核的二进制版本,可以直接使用zlmage安装到开发版上,也可以通过命令在Android模拟器中进行测试。
# emulator -avd myavd -kernel /root/kernel/goldfish/arch/arm/boot/zlmage
标签:
原文地址:http://www.cnblogs.com/orange921/p/5453342.html