标签:
Android源代码包含内嵌在Android系统中的应用程序的源代码,Android SDK带的各种工具的源代码和Android NDK的源代码
1.创建一个用于存放下载脚本文件(repo)的目录
#mkdir ~/bin
#PATH=-/bin:$PATH
2.下载repo脚本文件
#curl http://dl-ssl.google.com/dl/googlesource/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
# repo init –u http://android. googlesource.com/platform/manifest –b android-4.0.1_r1
5.开始下载Android源代码
#repo sync
包括abi,bionic,bootable,build,cts,dalvik,development,device,docs,external,ndk等等目录名
方法一:使用repo sync命令
#repo sync platform/bootable/recovery
# repo sync platform/packages/apps/Camera
方法二:使用git clone命令
#git clone http://android. googlesource.com/<project name>
#git clone http://android. googlesource.com/ platform/bootable/recovery
1.初始化编译环境
#source build/envsetup.sh
#.build/envsetup.sh
//例如,编译Calendar工程
#cd /working/android2.3.4_sre
#source build/envsetup.sh
#cd packages/apps/Calculator
#mm
2.选择目标
#lunch full-eng
3.编译Android源代码
#make
#make –j4
out目录是存放编译Android源代码生成的目标文件的默认目录。
out目录中有两个直接子目录:host 和 target
out/host目录,主要是一些编译过程中需要的一些库和工具
out/target目录包含common 和 product
为了测试system.img文件,可以将一个自己生成的apk程序嵌入system.img文件中,这样在测试system.img文件时这个apk程序就和其他原生的应用程序一样出现在应用程序列表中,而且该程序无法卸载(除非获取root权限,并直接将apk文件删除)。
生成system.img文件需要一个mkyaffs2image命令行工具。该命令行工具可以将system目录打包成system.img文件。
#mkyaffs2image system system.img //重新生成system.img文件
#emulator –avd myavd –system system.img –data userdata.img//使用模拟器测试刚生成的system.img文件
#git clone http://android. googlesource.com/kernel/common.git //下载最新的linux内核源代码
#git branch –a //查看当前在哪个远程版本库
#git checkout –b android-3.0 remotes/origin/android-3.0//导出linux3.0的内核
#git clone http://android. googlesource.com/kernel/goldfish.git //下载Google为Android模拟器提供的linux内核
#git checkout –b android-goldfish-2.6.29 remotes/origin/android-goldfish-2.6.29//进入goldfish目录,导出goldfish
交叉编译器:指在A架构的CPU上编译可在B架构CPU上运行的程序。
原因:交叉编译器无法在目标平台上安装或者目标平台性能较低,所以不得已才在性能较高,限制较少的平台上进行编译。
做法:在Makefile文件中找到ARCH 和CROSS_COMPILE并设置变量
ARCH ?=arm
CROSS_COMPILE?=arm-none-linux-gnueabi-
1.准备工作
arm-linux-gcc-4.3.2.tgz arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2
2.解压编译器
#tar zxvf arm-linux-gcc-4.3.2.tgz –C
#tar jxvf arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 -C
3.验证交叉编译器是否安装成功
#ls /usr/local/arm –L
4.安装libncurses5
#apt-get install libncurses5 -dev
1.编译内核
#export PATH=/root/compilers/arm-none-linux-gnueabl/bin:$PATH
#cd ~/linux_kernel
#make clean
#make
2.安装QT
apt-get install libqt4-dev
3.在Android模拟器中测试linux内核
emulator –avd myavd –kernel /root/kernel/goldfish/arch/arm/boot/zImage
标签:
原文地址:http://www.cnblogs.com/yajuan2013/p/5445858.html