【Android源码 栏目提醒】:网学会员为需要Android源码 的朋友们搜集整理了在Ubuntu7 10上编译android 1 概述 上个星期看到android开放源代码 - 财经管理相关资料,希望对各位网友有所帮助!
在Ubuntu7.10上编译
android 1 概述 上个星期看到
android开放源代码的消息虽然觉得Google的这个动作会对业界产生很大影响但没有时间仔细看只浏览了 Project layout。
今天上午一个网友在mail中说已经编译、运行过
android。
我趁着中午休息时间在一个Ubuntu7.10的虚拟机上编译、运行了一下。
我在这个虚拟机上编译过openmoko、poky。
相对于这两个使用OpenEmbedded的平台
android的编译要简单一些快一些。
我在编译openmoko和poky时将所有下载包都保存在一个目录中将编译目录的sources子目录指向这个目录。
这样做一方面即使以后有些链接失效也还可以编起来其实编译时都不需要连接外网 另一方面在重新编译时不用重新下载可以加快编译速度。
即使这样完全编译一次poky也要一个晚上。
编译
android时下载用了1个小时编译也只需要1个小时。
2 编译中的两个小问题 2.1 python和JDK Google网站对编译过程的介绍还是很清晰的。
不过在介绍其它软件包时都给出了apt-get命令却单独给出了python和JDK的链接地址容易对读者产生误导以为要手工安装这两个软件。
其实这两个软件也应该通过apt-get安装。
特别是python如果从源代码安装可能因为依赖其它软件导致一些组件编译失败影响
android的编译。
而且python 2.6的源代码包没有提供make uninstall卸载也比较麻烦。
其实我们只需要一个apt-get命令就可以安装所有依赖的软件。
2.2 fatal: git 1.5.4 or later required 在Ubuntu7.10上执行repo init时会出现fatal: git 1.5.4 or later required的错误提示。
在Ubuntu8.04上编译没有这个问题。
下面的流程里会介绍怎样解决这个问题。
3 在Ubuntu7.10上的编译流程 3.1 安装依赖的软件 执行 sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl python sun-java5-jdk valgrind 3.2 安装脚本repo cd mkdir bin export PATHPATH:/bin curl http://
android.git.kernel.org/repo /bin/repo chmod ax /bin/repo 将repo所在目录加到PATH后就可以在其它目录直接执行。
3.3 初始化代码仓库 我把/ui/mydroid作为工作目录创建目录后在这个目录执行 repo init -u git://
android.git.kernel.org/platform/manifest.git 如果返回fatal: git 1.5.4 or later required就执行3.4。
否则执行3.5。
3.4 “fatal: git 1.5.4 or later required”的解决 3.4.1 删除git-core添加apt源 首先执行 sudo apt-get remove git-core 再编辑apt的源文件 sudo vi /etc/apt/sources.list 在最后添加 deb http://www.backports.org/debian/ etch-backports main deb-src http://www.backports.org/debian/ etch-backports main 然后执行 sudo apt-get update 更新源。
这时如果出现没有公钥的错误提示“由于没有公钥下列签名无法进行验证 NO_PUBKEY EA8E8B2116BA136C”就执行3.4.2。
否则执行3.4.3。
3.4.2 安装公钥 执行gpg命令下载公钥 sudo gpg --keyserver wwwkeys.pgp.net --recv-keys EA8E8B2116BA136C sudo gpg --export -a EA8E8B2116BA136C /tmp/key 添加公钥 sudo apt-key add /tmp/key 3.4.3 更新git-core 执行 sudo apt-get update sudo apt-get install debian-backports-keyring sudo apt-get update sudo apt-get -t etch-backports install git-core 然后再执行 repo init -u git://
android.git.kernel.org/platform/manifest.git 应该就可以了。
3.5 下载代码 执行 repo sync 下载代码。
我从13:30执行这条命令14:30完成下载。
3.6 编译 执行 make 编译。
我从14:30开始编译15:40左右完成。
编译的最后输出是 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 4 执行 可以用模拟器运行一下刚才编译的映像。
从网上下载一个
android-sdk-linux_x86-1.0_r1.zip我将其放到/
android目录解压。
在路径中增加sdk的tools目录 export PATHPATH:/
android/
android-sdk-linux_x86-1.0_r1/tools 通过环境变量告诉模拟器映像所在的目录 export
ANDROID_PRODUCT_OUT/ui/mydroid/out/target/product/generic 最后执行 emulator 就可以了。
可以用-skin参数选择皮肤。
sdk的tools/lib/images/skins目录中是sdk自带的皮肤。
下面是两个运行的截图 相对于
android的java框架我更喜欢GTK和C。
但不得不承认
android的UI比openmoko做得强多了。
5 结束语 可以在/.bashrc的最后添加 export PATHPATH:/bin:/
android/
android-sdk-linux_x86-1.0_r1/tools export
ANDROID_PRODUCT_OUT/ui/mydroid/out/target/product/generic 自动设置编译、运行环境。
这两天晚上正在改gsmd的中文短信bug没时间仔细看
android的编译系统感觉上应该比OpenEmbedded简单。
其实OpenEmbedded用习惯了也不错就是不够精简速度慢一些占用空间大一些。
编译
android的工作目录有3.5个G。
我编译poky的目录有10.59个G编译openmoko的目录有11.6个G。
上一篇:
android有关sensor的源码总结
下一篇:
电力调度管理中信息技术论文