源代码的下载和编译
4.1 下载、编译和测试Android源代码
4.2下载和编译linux内核源代码
4.1.1 配置Android源代码下载环境
(1) 创建一个用于存放下载脚本文件的目录
# mkdir -/bin # PATH=-/bin:$PATH
(2) 下载repo脚本文件
# curl https://dl-ssl.google.com/dl/goolesource/git-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
4.1.2 Android源代码目录结构解析
Android源码目录结构
4.1.3 下载android源代码中的一部分
法一:使用repo sync命令
# repo sync platform/bootable/recovery
法二:使用git clone 命令
# git clone https://android.googlesource.com/<project name>
4.1.4编译android源代码
(1)初始化编译环境
# source build/envsetup.sh或#. Build/envsetup.sh
(2)选择目标
# lunch full-eng
(3)编译Android源代码
# make -jn
4.1.5 out目录结构分析
out目录结构
Out目录是存放Android源代码生成的目标文件的默认目录,out目录里只有两个直接的子目录:host和target
4.2 下载和编译linux内核源代码
要想使用linux内核,必须单独下载linux内核源代码
4.2.1下载linux内核源代码
# git clone https://android.googlesource.com/kernel/common.git
4.2.2 linux 内核源代码的目录结构
Linux内核源代码目录的含义
4.2.3安装Android内核的编译环境
(1)准备工作
将arm-linux-gcc-4.3.2tgz文件和arm-none-linux-guneabi-arm-2008q3-72-for-linux.tar.bz2文件复制到工作目录
(2)解压编译器
# tar xzvf arm-linux-gcc-4.3.2.tgz -C / # tarjxvf arm-none-linux-guneabi-arm-2008q3-72-for-linux.tar.bz2 -C /
(3)验证交叉编译器是否安装成功
# ls /usr/local/arm -l
(4)安装libncurses5
# apt-get install libncurses5-dev
4.2.4 配置和编译linux内核
可以使用以下命令进行编译
# export PATH=/root/compilers/arm-none-linux-gnueabi/bin:$PATH # cd ~/linux_kernel # make clean # make
小结:
Android移植主要就是linux内核的移植,而linux内核的移植主要是linux驱动的移植,所以为了开发和测试linux驱动需要在Ubuntu linux下搭建两套开发环境:Android应用程序开发环境和linux内核开发环境。