周折了几天,终于把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
第一步:安装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
相关文章推荐
- 终于搭建成功Xamarin for Android平台
- Jenkins+Gradle+Git+Pyger+二维码搭建Android自动打包平台
- 搭建Android平台
- Openfire + Smack 4.1.1 搭建Android聊天平台
- Windows和Ubuntu平台Android +JAVA 环境搭建
- XE5 开发android平台搭建
- hadoop2.6.2集群环境搭建在经过几天的环境搭建,终于搭建成功,其中对于hadoop的具体设置倒是没有碰到很多问题,反而在hadoop各节点之间的通信遇到了问题,而且还反复了很多遍,光虚拟机就重
- Android 平台 tess-two 图像识别 环境搭建
- 物联网平台机智云Android开源框架入门之旅(四) 分析怎么做好指令是否成功发送到云端的逻辑处理。
- 在MyEclipse上搭建Android开发平台
- 使用阿里云服务器搭建Android自动构建平台Jenkins
- 拥抱Android:编译nginx搭建移动平台
- 【Cocos2D-X学习笔记】Mac系统下Android平台环境搭建
- Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)
- 【Cocos2d-x】Cocos2d-x跨Android平台搭建之四:Win7 64位+ eclipse + cocos2dX
- 第一课:android平台搭建、以及helloworld
- 关于Unity -Vuforia -Android 开发 ,平台的搭建(极品菜鸟完整版)
- MAC操作系统上搭建Android开发平台环境
- 搭建Android开发平台(Windows7搭建Android4.0开发环境)