Fedora Core 5 编译Android

来源:互联网 发布:javascript 认证 编辑:程序博客网 时间:2024/06/04 23:28

如果选择比较新的Linux版本(例如Fedora10),则编译Android将比较顺利,一般直接make就可以成功生成所需要的文件和系统内核。(最多需要安装gperf),但在比较旧的Linux内核上编译Android将遇到很多错误,本文以Fedora Core5为例讲解所安装的步骤,供大家参考。

1. 因为Android SDK需要JDK 5或JDK 6支持, 但是Fedora Core 5的默认Java版本为JDK 4(1.4.2), 不能满足需求,因此首先需要升级JAVA.

从如下地址可以得到最新的JDK

http://java.sun.com/javase/downloads/index.jsp

将下载的jdk-6u11-linux-i586.bin文件用chmod +x设为执行,执行该文件将会自动解开为jdk1.6.0_11子目录,将该目录复制到合适的位置(例如/usr),然后需要在启动文件中修改默认的JAVA主目录。

下面的修改以/usr目录做为存放路径

修改/etc/bashrc, 增加下面的内容

export JAVA_HOME=/usr/jdk1.6.0_11
export PATH=$JAVA_HOME/bin:$PATH
exportCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

这样重新启动后,相应配置将激活,运行 java -version将出现下面提示:

[root@Neil java]# java -version
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode,sharing)
[root@Neil java]#

说明java已经成功被安装了


2. 安装gperf

如果本机不存在gperf时,需要安装gperf. (Fedora 10下也有可能需要该文件)

yum install gperf

安装完成后,运行gperf --help将会有提示信息显示


3. 因为Android需要gcc编译器所包含的include文件至少是2.6版本的, 但是Fedora Core 5自带的gcc头文件所用的版本为2.4版本,将造成Android编译时找不到相应的定义。

cat /usr/include/linux/version.h
#define UTS_RELEASE "2.4.20"
#define LINUX_VERSION_CODE 132116
#define KERNEL_VERSION(a,b,c) (((a)<< 16) + ((b)<< 8) + (c))
[root@Neil java]#

此时我们可以采用移植的方法暂时将/usr/include/linux目录改为我们需要的版本,下面以一个已经配置过的Linux-2.6.18.1作为移植头文件版本,用户可以自行设定。

cd /usr/include
mv linux old-linux
ln -s /usr/linux-2.6.18.1/include/linux

此时/usr/include/linux将使用Linux-2.6.18.1的Linux 头文件了。

4. make

如果顺利的话,将在out目录下产生出我们所需要的SDK和相关的Kernel文件了。

Generated: (out/target/product/generic/android-info.txt)
Target system fs image:out/target/product/generic/obj/PACKAGING/systemimage_unopt_intermediates/system.img
Install system fs image:out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image:out/target/product/generic/userdata.img
[root@Neil mydroid]


5. 修改/etc/bashrc, 增加相应的声明信息.(用户可自行修改到相应Android目录)

export PATH=/usr/mydroid/out/host/linux-x86/bin:$PATH
exportANDROID_PRODUCT_OUT=/usr/mydroid/out/target/product/generic


6. 运行emulate就会出现Android的启动画面了。



Android 主画面:


Fedora <wbr>Core <wbr>5 <wbr>编译Android



Android 浏览器(基于Webkit)


Fedora <wbr>Core <wbr>5 <wbr>编译Android




Android的一个3D演示: (魔方)

Fedora <wbr>Core <wbr>5 <wbr>编译Android




一个小经验:

当出现下面的错误信息时,一般都是因为make出错后,才另外安装的gperf, 此时只要执行make clean,再make就可以了。

external/webkit/WebCore/css/CSSGrammar.y: In function 'intWebCore::getPropertyID(const char*, int)':
external/webkit/WebCore/css/CSSGrammar.y:81: error: 'findProp' wasnot declared in this scope
external/webkit/WebCore/css/CSSGrammar.y:85: error: invalid use ofincomplete type 'const struct WebCore::props'
0 0
原创粉丝点击