移植 Android 开发过程
一.环境平台:
虚拟机 windowsXP + colinux + ubantu7.1
二.准备组件
1 .交叉编译器:
交 * 编译 器: GNU Toolchain for ARM Processors 下 载 地址: http://www.codesourcery.com/gnu_toolchains/arm/download.html
其中第一 项选择 ARM EABI 或 ARM GNU/Linux ,第二 项选择 IA32 GNU/Linux 即可。
2 .内核源代码:
Android 内核源代 码 : linux-2.6.23-android -m5-rc14.tar.gz 下 载 地址: http://code.google .com/p/android/downloads/list
注意 该 内核版本要与你 选 用的模 拟 器版本尽量一致 。
3 . Android SDK :
下 载 地址 : http://code.google.com/android/download_list.html
三.安装组件:
1. 安装交 叉 编译 器 (以下两点选择其一) :
1 .运行 ./ arm-2008q3-39-arm-none-eabi.bin 安装 至 /usr/local/ 目 录 下,并 选择将 路径添加到 PATH 中:
2 . 将 arm-2008q3-39-arm-none-eabi. tar.tar 解 压缩 至 /usr/local/ 目 录 下,并将其 bin 路径添加到 PATH 中:
$ export PATH=$PATH:/usr/local/CodeSourcery/Sourcery_G++_Lite/bin
可以把上句放到 /etc/environment 文件中或是放到 ~/.bashrc 文件中。
2. 安装 jdk/Eclipse
需要开发包
● JDK: jdk-6u4-linux-i586.bin à http://java.sun.com/javase/downloads/index.jsp
● Eclipse: eclipse-SDK-3.3.1.1-linux-gtk.tar.gz à http://www.eclipse.org/downloads/
● SDK: android-sdk-linux_x86-1.0_r1.zip à http://code.google.com/android/download.html
● 插件 : ADT-0.3.1.zip à http://code.google.com/android/adt_download.html
2 、安装 JDK :
[root@localhost ~]# chmod u+x jdk-6u4-linux-i586.bin
[root@localhost ~]# ./jdk-6u4-linux-i586.bin
[root@localhost ~]# .mv jdk1.6.0_10 /usr/local/
默认安装到当前目录下,移动到 /usr/local/ 。
配置路径:
[root@localhost ~]# nano .bashrc (或是 nano /etc/environment )
export JAVA_HOME=/usr/local/jdk1.6.0_10/
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
3 、安装 Eclipse
[root@localhost ~]# tar -zxvf eclipse-java-ganymede-SR1-linux-gtk.tar.gz
[root@localhost ~]mv eclipse /usr/local/
4 安装 android SDK :
解压: android-sdk-linux_x86-1.0_r1.zip 到 android_sdk_linux_m3-rc20a
[root@localhost ~]unzip android-sdk-linux_x86-1.0_r1.zip
[root@localhost ~]mv android-sdk-linux_x86-1.0_r1 /usr/local/android-sdk-linux
配置路径:
[root@localhost ~]# nano .bashrc
export PATH=$PATH:/usr/local/android-sdk-linux/tools
5 、安装插件 ADT-0.8.0.zip :
Help > Software Updates... > Available Software tab > New Archive Site... > Add Site..., > Archive, select the downloaded the ADT-0.8.0.zip file > install
6 、启动 /usr/local/eclipse/eclipse ;
7 、配置 android-sdk :选择 Window > Preferences...> Android 属性面板 > AndroidSDK 的目录点击 Browse... > 选择 :/usr/local/android-sdk-linux/
3. 交叉编译 kenel
1 、解包: tar -zxvf mydroid_src_20081105.tar.gz
2、获取内核编译配置文件
交 * 编译环 境搭建好后需要得到 android 的内核 编译 参数的配置文件, 该 文件需要从 android sdk 中的模 拟 器中得到。启 动 android 模 拟 器,然后通 过 adb 得到模 拟 器中提供的内核配置文件:
$emulator &
$adb pull /proc/config.gz .
这时 候 adb 工具会 连 接模 拟 器,并从它里面下 载 一个叫做 config.gz 的文件到你的当前目 录 下。将其移 动 至 kernel 目 录 ,解 压该 文件得到 config ,将其重命名 为 .config , 这样 就可以跳 过 make config 而直接得到 Makefile 所需要的内核配置文件。
$ gunzip config.gz
$ mv config .config
3、修改Makefile
首先修改第 187 行,将 CROSS_COMPILE 值 改 为 arm-none-eabi- , 这 是我 们 安装的交 * 编译 工具 链 的前 缀 ,修改此 处 意在告 诉 make 在 编译 的 时 候要使用 该 工具 链 。
编译出错,待续。
4. 建立根系统
ramdisk.img in tools/lib/images
[root@localhost ~]#cp ramdisk.img ramdisk.gz
[root@localhost ~]#gunzip ramdisk.gz
[root@localhost ~]#cd target_fs
[root@localhost ~]#cpio -iv < ../ramdisk
Result of this should be an root file system tree with:
data
dev
etc
init
proc
sbin
sys
system
tmp
var
目录 data, dev 和 system 是空目录 . Extract content of extracted user data image to /data and system image to /system directories. E.g
tar xvfj ../system_m5_rc14.tar.bz2 system/
tar xvfj ../userdata_m5_rc14.tar.bz2 data/