您的位置:首页 > 移动开发 > Android开发

周折了几天,终于把Android平台的搭建做好了

2011-11-29 13:59 316 查看
废话少说,立刻上资料。
第一步:安装vim工具

第二步:安装samba工具,创建与windows共享文件夹

第三步:安装android系统编译的涉及的开发包:git-core gnupg valgrind flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

第四步:安装java1.5,编译android内核时需要用到java1.5版本

需要更新/etc/apt/sources.list,添加如下:

1.运行命令 sudo gedit /etc/apt/sources.list

2.打开 sources.list 后在最后添加 deb http://mirrors.163.com/ubuntu/ hardy main multiverse 保存关闭

3.运行命令 sudo apt-get update

4.运行命令 sudo apt-get install sun-java5-jdk 就可以下载安装 java5

需要注意的是,官方文档说如果用sun-java6-jdk可出问题,得要用sun-java5- jdk。经测试发现,如果仅仅make(make不包括make sdk),用sun-java6-jdk是没有问题的。而make sdk,就会有问题,严格来说是在make doc出问题,它需要的javadoc版本为1.5。

因此,我们安装完sun-java6-jdk后最好再安装sun-java5-jdk,或者只安装sun-java5-jdk。这里sun-java6-jdk和sun-java5-jdk都安装,并只修改javadoc.1.gz和javadoc。因为只有这两个是make sdk用到的。这样的话,除了javadoc工具是用1.5版本,其它均用1.6版本:

$ sudo apt-get install sun-java6-jdk

修改javadoc的link

$ cd /etc/alternatives

$ sudo rm javadoc.1.gz

$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz

$ sudo rm javadoc

$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc

第五:编译android内核和linux内核

编译Android内核方法:

注意:由于android的内核有3G多,因此最好安装ubuntu11的系统时分配的存储空间大于等于20G(Android系统比较大),内存分配大于等于1G(否则有肯能会编译Android系统时出错了)

之前已经把Android内核文件和Linux内核文件分别拷贝到对应的Android文件和Linux文件下。

正如你所看到的,Android 系统十分庞大,很多初学者都不能顺利的成功编译它,而且编译一次所需的时间很长(1.5-4 小时,甚至更长),为了方便大家使用,我们特意准备好了现成的源代码包,并且制作了 3 个脚本分别用来编译和创建 Andoid 系统:build-android、genrootfs.sh和 genrootfs-s.sh

在命令行执行:

#cd /Android-2.3

#./build-android

就开始编译 Android-2.3 系统,你需要等待很长的时间,建议开发 Android 系统不要使用虚拟机编译,使用多核的 CPU加真实的Linux 系统会快一些。 然后,再执行脚本:

#./genrootfs.sh

就可以从编译完的 Android 系统提取出我们需要的目标文件系统了,最后会生成rootfs_dir目录,如图,它和上面提到的 rootfs_android 内容是完全相同的。 提示:使用genrootfs-s.sh 脚本,可以编译出适用于串口触摸屏控制器的 LCD套餐。

编译Linux内核方法:

Android 所用的 Linux 内核和标准的 Linux 内核有所不同,但使用的方法和步骤是相似的;如果你对配置 Linux 内核不熟悉,建议你使用我们提供的缺省内核配置。

要编译适用于 N43 型号 LCD的内核,请这样使用缺省内核配置:

#cd /linux-2.6.36-android

#cp config_android_n43 .config ;注意 config前面有个”.”

#make

最后会在 arch/arm/boot 目录下生成 zImage,我们把它重新命名为 azImage_n43 放入光盘中,以便区分

要编译适用于 A70 型号 LCD的内核,请这样使用缺省内核配置:

#cd /linux-2.6.36-android

#cp config_android_a70 .config ;注意 config前面有个”.”

#make

最后会在 arch/arm/boot 目录下生成 zImage,我们把它重新命名为 azImage_n70 放入光盘中,以便区分。

编译Android系统时出现的问题和解决方法:

1、

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] Error 1

make: ***

解决方法:

gedit frameworks/base/libs/utils/Android.mk



LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)

修改为:

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissive

2、

make: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes-with-local.dex] Killed

解决方法:

把虚拟机ubuntu系统分配内存1G,有条件最好对于1G

3、

<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]

make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1

解决方法:

修改build/core/combo/HOST_linux-x86.mk 61行,将

HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0

修改成

HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: