源代码的下载和翻译
1.配置android源代码下载环境
(1)创建一个用于存放下载脚本文件(repo)的目录(可将该脚本文件放到任何目录中,在这里使用~/bin)
#mkdir ~/bin
# PATH=~/bin.PATH
(2)下载repo脚本文件(用于下载android源代码)
#curled https://dldl-ssl.google.com/dl/googlesource/git-repo/repo>-/bin/repo
# chmod a+x ~/bin/repo
repo文件实际上是用python脚本对Git的封装,主要是为了简化下载源代码的操作。
(3)创建用于存放android源代码的目录(可放在其他目录下)
# mkdir android_source
#cd android_source
(4)初始化
# repo init -u https://android.googlesource.com/platform/manifest
(5)开始下载android源代码
# repo sync
2下载android源代码的子项目
方法1:使用repo sync 命令
# repo sync platform/bootable/recovery
# repo sync platform/packages/apps/camera
方法2:使用git clone命令
git clone https://android.googlesource.com/
下载recovery工程的命令:
git clone https://android.googlesource.com/platform/bootable/recory
Repo sync 和 git clone区别:
Repo sync会在当前目录生成一个隐藏目录.repo。该目录存放了下载android源代码所需的全部信息。Git clone只会建立工程目录,并不建立层次路径结构、
- 编译android源代码
(1)初始化编译环境
# source building/envsetup.sh 或者# .build/envsetub.sh
Mm和mmm区别:mm命令不许进入制定工程目录进行编译,mmm命令可以在android源代码目录结构中任何一级目录编译任意指定的工程,只要指定工程路径即可。
(2)选择目标
使用lunch命令设置编译目标
# lunch full-eng
(3)编译android源代码
如果在多核的PC上不加-Jn命令符,make命令只会利用一个CPU核进行编译,这将大大降低android源代码的编译效率。
4.out目录结构分析
Out目录是存放编译android源代码生成的目标文件的默认目录。Out目录中只有两个直接子目录:host和target。Host目录主要是一些编译过程中需要的一些库和工具。
5.安装交叉编译器
(1)准备工作
(2)解压编译器:# tar zxvf arm-linux-gcc-4.3.2.tgz -c/
#tar jxvf arm-none-linux-gnueabi-arm-2008q3-72-for-linux.taz -c/
(3)验证交叉编译器是否安装成功
# ls /usr/local/arm -1
(4)安装libncurses5
# apt-get install libncurses5-dev
6.配置和编译Linux内核
#export PATH=/root/compilers/arm-none-linux-gnueabi/bin:PATH
#cd ~/linux_kernel
#make clean
#make