很久以前写的,从那个博客搬过来的。
…
一、系统篇
安装ubuntu,大家可以直接在硬盘装,也可以用虚拟机,对于初学者推荐虚拟机,非常方便,只要有硬盘镜像,即使重装系统,都不用重装ubuntu。
我用的是vmware6.5,装ubuntu8.10,具体过程我就不说了,但是有一点切记切记,vmware在安装的时候,要设置一个硬盘大小,一定要大于10G,最好是12G左右。
因为Android,包括版本更新工具,源码,编译中间obj文件,一起要差不多6、7个G,再加上系统2个G左右,小于10G的系统就太捉襟见肘了。
二、工具篇
装好ubuntu系统,要装相应的编译工具
gcc jdk之类,以及其他一些小工具(由于之前做毕业设计的时候,在ubuntu下装过ns2,很多东西都装过,因此这一步基本跳过),不过我还是尽量列一下,虽然不一定全,但是应该差不多。都装装吧!
java装完有的要设置环境变量(具体见我下一篇帖子吧)
sudo apt-get install python2.5
sudo apt-get install zlib1g-dev
sudo apt-get install git-core gnupg
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
sudo apt-get install python2.5(这个有人说不用装,我测试过的确这样,先可以不装,等编译有问题再说)
sudo apt-get install sun-java5-jdk(据网上高人说,这个一定要装java5的,不能装java6的,要不然会报如下错误
Docs droiddoc: out/target/common/docs/dx
javadoc: error - In doclet class DroidDoc, method start has thrown an
exception java.lang.reflect.InvocationTargetException
com.sun.tools.javac.code.Symbol$CompletionFailure: class file for
sun.util.resources.OpenListResourceBundle not found2.)
可以用java -version看看自己版本,如果不是java5的,就apt-get remove 给卸了
(如何用命令看已经安装了的所有包,这个我还没有研究出来,实在不行,就到UI界面去看吧)
三、下载篇
下载Android的源代码
1.用下载工具curl 下载一个,配置环境的脚本repo
curl http://android.git.kernel.org/repo > repo
这样在当前目录生成一个脚本文件repo,你也可以自己选择路径
这个脚本是要放到环境变量目录中,用来运行的
由于我直接用root,我的环境变量就是 /bin
所以我就直接 url http://android.git.kernel.org/repo > /bin/repo
2.给该脚本赋予可执行权限
sudo chmod a+x /bin/repo
3.执行初始化命令
$ repo init -u git://android.git.kernel.org/platform/manifest.git
中间会提示输入电子邮件什么的,(据网上高人说,如果你打算要提交patch的话,用google accounts注册过的邮箱)
4.同步代码
同步代码的命令 repo sync(先别急,看完第五条再同步)
切记,切记
这个同步下来的东西是在当前目录下的,而且是一个因此文件夹.repo 用 ls -al 能看到
所以,你一定要自己建立一个目录,比如/home/android,进入这个目录再执行这个命令,要不然就会生成很多多余的文件,你还不知道到底在哪里。
我第一次就是这个,执行了N次,没有看到一个代码,还好,我用find -name 查找,才把他们揪出来了。
5.repo 补充
repo 是一个同步命令,如果输入repo 就是同步所有的代码吧,如果加个参数就是同步某个包的代码。
既然有全部同步的命令,为什么我们要自己那么麻烦去同步其它的呢?因为在同步的过程,经常会出现网络错误。
所以,网上有高人指点说,对于比较大的包,加参数同步,其它的,就不加参数。
在执行初始化好,就是第三步的目录下,我们 cd .repo,就会看到project.list文件,我们可以看到所有project,总共116个。比如 repo sync build、 repo sync external/apache-http等
据个人记忆,好像build 、bionic、dalvik、prebuilt、frameworks/base这几个包比较大,建议单独同步。
(据网上高人说,repo服务器,每个终端最多支持3个线程,也就是我们可以同时开三个repo)
同步过程网络失败太正常了,多试几次就好了,全部下来大概1.3个G,具体时间,看个人网速。
四、编译篇
代码下载完成后,进入代码目录,这里就以/home/android/为例
里面有一个build/envsetup.sh ,执行.(这个是配置编译环境的,具体细节我目前还不清楚)
然后,就再到/home/android/,执行make,然后就睡觉去吧!
最好生成的文件在/home/android/out 里面
五、容错篇
运气好的话,一次编译通过,有时候难免会出错,网上有大侠,列出几种常见错误以及解决办法。
1.
Mysterious build failure when javac isn't presentIf you see the build failure:
build /core /find-jdk-tools-jar.sh: line 5: [: too many arguments
build /core / host_java_library.mk :28: *** multiple target patterns. Stop.
It's probably because javac is not in your path. The build should fail with a better error message.
java没有设置环境变量
2.
Docs droiddoc: out/target/common/docs/dx
javadoc: error - In doclet class DroidDoc, method start has thrown an
exception java.lang.reflect.InvocationTargetException
com.sun.tools.javac.code.Symbol$CompletionFailure: class file for
sun.util.resources.OpenListResourceBundle not found2.
这个上面提过,也是java的问题,据说应该用1.5的版本
3
还有我遇到过更弱智的问题,就是磁盘空间不够了……汗!
不过只要你按照我的方法设置大一点的空间,就不会有这个问题了
choosecombo De rel moon eng
先到此为止,以后遇到好的东西,再和大家一起共享。
发表评论
-
TC官方文档翻译03----可扩充字符串API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)
2012-07-06 09:52 582/** * 转载请注明出处, 由于个人技术能力有限, 英 ... -
初见C#之欣喜 -- 有关正则和LINQ
2012-07-06 09:46 856这两天由于作业的原因用C#写了个小程序,苦恼于陌生的函数、 ... -
各种视图组件
2012-07-03 13:44 730TabHost包含: 布局器: 上边:一个TabW ... -
给FlexViewer加一个登录
2012-07-02 12:56 640打开index.mxml,修改如下: flex/sp ... -
[Bindable]元数据标签举例
2012-07-02 12:56 669【描述】 现在想从后台的数据库里读取一些Produc ... -
学习组件拖拽
2012-07-02 12:56 715height="323" ... -
Using the Adobe AIR 2 NativeProcess API to create a screen recorder
2012-07-02 12:56 1349With the release of AIR 2, Ad ... -
ExtJs 扩展 笔录1
2012-07-02 12:56 610Ext.layout.SlideLayout.js Ext ... -
整理电脑,整理大脑
2012-07-01 10:31 751电脑硬盘空间不足了,该怎么办呢? 增加硬盘空间,我真 ... -
开发知识总结
2012-07-01 10:31 753总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充! ... -
完整的Flex多文件上传实例
2012-07-01 10:31 436客户端代码:fileUpload.xml--------- ... -
像Youtube一样的flv视频网站制作 使用Flex和PHP创建自己的视频应用
2012-07-01 10:31 753转帖:http://blog.sina ... -
2011年11月01日
2012-06-30 16:52 9892011年11月01日 2011年11月 ... -
[转]Q版格斗游戏《口袋战士NOVA》开发心得[原创]
2012-06-30 16:52 892[转]Q版格斗游戏《口袋战士NOVA》开发心得[原创] 20 ... -
本创:如何才气建制出劣秀的Facebook游戏?
2012-06-30 16:52 811本创:如何才气建制出劣 ... -
中国网络游戏发展历史大全 .网络游戏
2012-06-30 16:52 686中国网络游戏发展历史大全 .网络游戏 2011年07月14日 ...
相关推荐
此文档详细记录了本人ubuntu下搭建ubuntu环境,android源码下载环境,下载android 4.0.3源码及编译的过程。如果有问题,可以直接来问我。
详细android源码下载编译图文教程.pdf
详细android源码下载编译图文教程定义.pdf
android 编译,下载,环境配置,
Android Launcher源码下载,PagedView,PagedViewIcon
这篇文档详细描述了在android源码上编译APK的过程
Android-x86源码的获得及编译,移植Android到x86架构的机器上!
android源码的编译.pdfandroid源码的编译.pdfandroid源码的编译.pdf
android2[1].3源码下载编译过程.rar
Android源码反编译工具包,查看别人源码的必备工具。使用过程可以参考博文:http://blog.csdn.net/kyoky_xxj/article/details/9152797
Android Launcher 源码修改可编译.zip源码资源下载Android Launcher 源码修改可编译.zip源码资源下载
这个文章很好,涵盖了比较全面的Android源码编译的知识. 包括编译系统镜像, SDK以及单独模块和应用.
Android 源码编译的jar包,包括4.4和5.0版的
android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6
Ubuntu平台下Android2.3源码下载编译全过程
Android源码下载与Android源码编译,及分析
这里详细介绍的了,android源码编译环境搭建方法
Android源码编译
android P(android9) 源码编译.ipr.iml文件。直接将这两个文件放到源码根目录就可以了,即可导入android studio