android 4.0.3最新源码下载编译

来源:互联网 发布:淘一兔淘宝信誉查号 编辑:程序博客网 时间:2024/05/01 22:14

最新的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位的,请在源码下载后编译前按以下步骤修改:

下载完源码后,修改下面四个文件: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可能会在编译的最后出现头文件丢失的错误比如:image_thumb,请按照以下方法修复:

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 xsltproc
32-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
image
填写后即可执行同步命令
6:下载源码
$ repo sync
可加参数: -jx x代表开启多少个线程来下载源码
源码+repo  一共13G左右
如果中间出错或者网络不稳定,可以重新初始化repo,用同一个email即可实现本地git库和服务器git库的同步
编译源码下载完源码后进入源码主目录 
1 :执行:
$ source build/envsetup.sh
souce命令执行的是源码包build目录下的envsetup文件
image
可以看出这个文件里定义了很多函数供编译使用
function help()function get_abs_build_var()function get_build_var()function check_product()function check_variant()function setpaths()function printconfig()function set_stuff_for_environment()function set_sequence_number()function settitle()function choosetype()function chooseproduct()function choosevariant()function tapas()function choosecombo()function print_lunch_menu()function lunch()function gettopfunction m()function findmakefile()function mm()function mmm()function croot()function pid()function gdbclient()function jgrep()function cgrep()function resgrep()function getprebuiltfunction tracedmdump()function runhat()function getbugreports()function startviewserver()function stopviewserver()function isviewserverstarted()function smoketest()function runtest()function runtest_py()function godir ()
2:选择一个target
$ lunch full-eng
image
我们编译后在模拟器中运行,所以选择full
image
我们选择最大的权限,也就是root后的版本,所以选择eng
3:编译源码
$ make -j4
过程大概3小时
编译完后在源码目录下会生成out文件夹如图
image
好了,可以检验以下我们编译的源码是否正常运行了
$ emulator
如果提示找不到命令,请初始化环境
$ source build/envsetup.sh$ lunch full-eng
image
 
ok,android源码顺利完成,明天进行内核的编译
原创粉丝点击