一、下载、编译和测试Android源代码
(1)配置 Android 源代码下载环境
在下载 Android 源代码之前必须要在 Linux 终端执行一系列命令来配置下载环境。
1.创建一个用于存放下载脚本文件(repo)的目录
# mkdir -/bin
# PATH=~/bin:$PATH
2.下载 repo 脚本文件
# curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
# chmod a+x ~/bin/repo
repo文件实际上是用python脚本对Git的封装,主要是为了简化下载Android源代码的操作。
3.创建用于存放Android源代码的目录
# mkdir android source
# cd android source
第4步:初始化
# repo init -u https://android.googlesource.com/platform/manifest
第5 步:开始下载Android源代码
# repo sync
下载Git时间普遍较长,需耐心等待。若要备份Android源代码,需保留版本库(.git目录)。
二、部分Android 源代码目录含义
abi 应用程序二进制接口
bionic C/C++运行时库
bootable 用于Android装载和启动程序
build用于编译Android源代码以及建立system.img, ramdisk.img等文件的工具
cts 用于兼容性测试的工具
dalvik Dalivik虚拟机的源代码
development 高层的开发和调试工具
device 与设备相关的代码.其中包含了moto、二星的设备相关代码
docs包含与Android派代码项目的文档和工具,如Dalivk虚拟机格式文档等
libcore Java核心库
system Android的基本系统
三、下载 Android 源代码中的一部分
当只需要部分Android 源代码时,可只下载需要的部分。
使用repo sync命令 在repo sync命令后跟工程名,工程名就是要下载的工程所在的路径全名前面加上platform/。
# repo sync platform/bootable/recovery
使用git clone命令
git clone https://android. googlesource.com/<project name>
repo sync和git clone命令下载源代码主要有如下区别。
r.epo sync会在当前目录生成一个隐藏自录.repo该目录存放了下载Android源代码所需的全部信息。
repo sync下载指定工程的源代码会按照实际的路径存放,如bootable/recovery 。 而git clone 会只会建立工程目录 (如receovery), 并不会建立层次路径结构。
四、编译Android源代码
第1步:初始化编译环境
在Linux终端执行命令:# source build/envsetup.sh 或 # . build/envsetup.sh
envsetup.sh脚本文件主要用来初始化一些编译命令。
第2步:选择目标
使用lunch命令设置编译自标。
第 3 步 编译 Android 源代码
# make
五、安装 Android内核的编译环境
(1)准备工作
将arm-linux-gcc-4.3.2.tgz文件和arm-none-Iinux-gnueabi-arm-2008q3-72-for-linux.tar.bz2文件复制到工作目录。
(2)解压编译器
(3)验证交叉编译器是否安装成功
# ls /usr/local/arm –l
六、配置和编译Linux内核
在终端输入以下命令编译Linux内核:
# export PATH=/root/compilers/arm-none-linux-gnueabi/bin:$PATH
# cd ~/linux_kernel
# make clean
# make
内核编译成功后,会生成一个zImage文件。