Android移植主要就是Linux内核的移植。而Linux内核移植主要是Linux驱动的移植。所以为了开发和测试Linux驱动。需要在ubuntu Linux下搭建两套开发系统:Android应用程序开发环境和Linux内核开发环境。Android源代码虽然很复杂,但是研究Android源代码不需要了解每一个细节,只需要我们关注需要了解的源代码即可。
一、 下载、编译和测试Android源代码
1.配置Android源代码下载环境
(1)创建一个用于存放下载脚本文件(repo)的目录(可将该脚本文件一放到任何目录中)
#mkdir ~/bin
#PATH=~/bin:$PATH
(2)下载repo脚本文件(用于下载Android源代码)
(3)创建用于存放Android源代码的目录
(4)初始化
(5)开始下载Android源代码
2.下载Android源代码中的一部分
方法一:使用repo sync命令(# repo platform/bootable/recovery)
方法二:使用git clone命令
3.编译Android源代码
(1)初始化编译环境
# source build/envstup.sh或者# . build/envsetup.sh
mm和mmm都可以编译Android源代码中指定的工程。Mm命令必须进入指定工程的目录进行编译,而mmm可以在Android源代码目录机构中的任一级目录编译任意指定的工程。
(2)选择目标
# lunch 目标名
(3)编译Android源代码
# make
(4)将自己的APK作为Android内置程序发布
(5)用模拟器测试system.img文件
2.下载和编译Linux内核源代码
(1)下载Linux内核源代码
# git clone
# git branch –a(查看远程版本)
# git checkout –b android-3.0 remotes/origin/android-3.0 (导出Linux内核)
(2)安装Android内核的编译环境
解压编译器(# tar zxvf arm-linux* -c和# tar jxvf arm-none* -c)
验证交叉编译器是否安装成功(# ls /usr/local/arm -l)
安装libncursers5(# apt-get install libncursers5-dev)
(3)配置和编译Linux内核
# export PATH=/root/compilers/arm-none-linux-gnueabi/bun:PATH
# cd~/linux_kernel
# make clean
# make
make mrproper:清除所有由编译产生的文件+清除配置文件;make distclean:makr mrproper+删除编辑器留下的备份文件和补丁文件.
make config:以文本形式配置Linux内核,make menuconfig:以字符界面形式配置Linux内核,make oldconfig:以字符界面逐项要求用户配置,make xconfig:以图形界面形式配置。这四个命令必须在Linux源代码根目录下执行。
在Android模拟器中测试Linux内核(# emulator –avd myavd –kernel /root/kernel/goldfishi/arch/arm/boot/zImage)