下载android源代码及编译及遇到的问题:
最新的android4.0源代码公布以后,相信很多人和我一样都跃跃欲试,其实4.0的代码下载和编译和以前的版本差不多,但是有一些小的差别,写下来供不明真相的新手来参考
首先,开发环境,google建议在ubuntu10.0.4下,并且最好是64位,既然是为了工作和学习,就尽量按照官方要求的来吧。
Python 2.5 -- 2.7 ubuntu10.0.4已经默认安装了,所以不需要安装,其他环境需要安装
JDK 6 编译4.0需要jdk 6 ,sdk的编译需要jdk 5
Git 1.7 or newer
如果你的ubuntu是32位的,请在源码下载后编译前按以下步骤修改:(注:以前需要改下面,现在不需要了,可以直接编译,google好像做了32位,64位都可以编译了)
下载完源码后,修改下面四个文件:external/clearsilver/cgi/Android.mk
external/clearsilver/java-jni/Android.mk
external/clearsilver/util/Android.mk
external/clearsilver/cs/Android.mk
将其中的 LOCAL_CFLAGS += –m64
LOCAL_LDFLAGS += –m64
修改为 LOCAL_CFLAGS += –m32
LOCAL_LDFLAGS += –m32
在build/core/main.mk
找到 ifneq (64,$(findstring 64,$(build_arch)))
将其修改为 ifneq (i686,$(findstring i686,$(build_arch)))
如果你装的ubuntu是最新的11.04打头的,由于内核版本的bug可能会在编译的最后出现头文件丢失的错误比如:,请按照以下方法修复:
repo download platform/external/qemu 22776/1 如果你是10.0.4就不要做多余的事情了,如果你修复了,编译出的版本可能会出现黑屏现象进入不了系统,切记!
编译的环境不同,碰到的问题也会千奇百怪,如果你编译出问题了请养成google和百度的习惯
1:jdk的安装比较简单,就不做介绍了
2:安装依赖库:
64-bit:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \ x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \ libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \ libxml2-utils xsltproc32-bit$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \ libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \ libxml2-utils xsltproc
On Ubuntu 10.10:
$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
On Ubuntu 11.10:
$ sudo apt-get install libx11-dev:i386
3:下载Repo
$ mkdir ~/bin $ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod a+x ~/bin/repo
4: 创建源码目录:
$ mkdir ANDROID_SOURCE
$ cd ANDROID_SOURCE
5: 获取git上的android源码版本
$ repo init -u https://android.googlesource.com/platform/manifest
我们下载最新版
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1
此时需要你填写用户名和email
填写后即可执行同步命令
6:下载源码
$ repo sync
可加参数: -jx x代表开启多少个线程来下载源码
源码+repo 一共13G左右(因为repo会自动执行check out 命令)
如果中间出错或者网络不稳定,可以重新初始化repo,用同一个email即可实现本地git库和服务器git库的同步
编译源码 下载完源码后进入源码主目录
1 :执行:
$ source build/envsetup.sh
souce命令执行的是源码包build目录下的envsetup文件