首先,开发环境,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可能会在编译的最后出现头文件丢失的错误比如:
,请按照以下方法修复:
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
填写后即可执行同步命令
6:下载源码
$ repo sync
可加参数: -jx x代表开启多少个线程来下载源码
源码+repo 一共13G左右(因为repo会自动执行check out 命令)
如果中间出错或者网络不稳定,可以重新初始化repo,用同一个email即可实现本地git库和服务器git库的同步
编译源码
下载完源码后进入源码主目录
1 :执行:
$ source build/envsetup.sh
souce命令执行的是源码包build目录下的envsetup文件
可以看出这个文件里定义了很多函数供编译使用
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 gettop
function m()
function findmakefile()
function mm()
function mmm()
function croot()
function pid()
function gdbclient()
function jgrep()
function cgrep()
function resgrep()
function getprebuilt
function 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
我们编译后在模拟器中运行,所以选择full
我们选择最大的权限,也就是root后的版本,所以选择eng
3:编译源码
$ make -j4
过程大概3小时
编译完后在源码目录下会生成out文件夹如图
好了,可以检验以下我们编译的源码是否正常运行了
$ emulator
如果提示找不到命令,请初始化环境
$ source build/envsetup.sh
$ lunch full-eng
ok,android源码顺利完成,明天进行内核的编译
分享到:
相关推荐
"android4.0.3关联源码"指的是Android 4.0.3版本的源代码,这个版本是Android Ice Cream Sandwich(冰淇淋三明治)的一部分。通过分析这个版本的源码,开发者和研究者可以深入学习Android系统的内部机制,包括系统...
《深入剖析Android 4.0.3源码》 Android 4.0.3,代号Ice Cream Sandwich(冰淇淋三明治),是Android系统发展史上的一次重要更新,它为移动设备带来了诸多新特性和改进。这篇详述将探讨Android 4.0.3源码中的关键...
在这个"Android4.0.3 Gallery JNI源码"中,我们可以深入学习到如何在Android的相册应用(Gallery)中应用JNI技术。 Gallery应用是Android系统中用于查看和管理图片的原生应用。在Android 4.0.3版本中,Gallery应用...
通过以上步骤,你已经成功搭建了Android 4.0.3源码的编译环境,下载了源码,并完成了编译过程。这将为你的Android系统定制、调试或研究提供坚实的基础。需要注意的是,整个过程可能需要较大的磁盘空间和较长时间,...
开发者需要获取Android 4.0.3的内核源码,并确保编译环境正确配置。 2. **驱动适配**:Android的文件系统管理与传统Linux有所不同,需要将NTFS-3g的驱动接口与Android的VFS(虚拟文件系统)接口进行适配。这包括文件...
标题为“可输入文字设定大小的android4.0.3烟花效果源码”,这意味着它允许用户输入自定义的文字,并控制烟花的大小,以形成个性化的效果。这一特性在众多的Android应用中并不多见,因此对于开发者来说,深入理解其...
在Android开发领域,Launcher2是Android 4.0.3(Ice Cream Sandwich)系统中默认的主屏幕应用,它负责管理应用程序的图标、小部件以及启动器的各种功能。本话题将详细探讨如何将Android 4.0.3的Launcher2项目导入到...
《深入解析Android 4.0.3 Jar源码》 Android 4.0.3,代号冰淇淋三明治(Ice Cream Sandwich),是Google推出的一个重要版本,它为Android平台带来了许多新特性和改进。本篇文章将围绕Android 4.0.3 Jar包源码展开,...
最近2013-11-29(Nov 29, 2013)更新的Android ZXing 2.3.0 release源码及编译后的core-2.3.0.jar和android-integration-2.3.0.jar打包亲测可用,如大家有兴趣自己编译的话请参考下面的教程。 下面我写的教程修改自...
《深入剖析Android 4.0.3源码》 Android作为一个开源的操作系统,其源码是开发者探索系统底层运行机制、优化应用性能、定制个性化系统的宝贵资源。Android 4.0.3,又称为Ice Cream Sandwich(冰淇淋三明治),是...
经过一个多星期的努力,终于在零基础的情况下在ubuntu-12.04-desktop-amd64(64位Ubuntu系统)成功编译了android-4.0.3的
### Windows环境下使用Git下载Android源码 在Windows操作系统中通过Git工具下载Android源代码是一项较为常见的操作,这对于从事Android开发的工程师来说尤为重要。本篇文章将详细介绍如何在Windows系统上安装Git,...
上搞下来的,给有需要的朋友,使用方法:在android.jar 同级目录下新建sources文件夹,将解压的内容放入其中,在eclipse中右键android.jar选择属性,关联到sources文件夹即可,小菜鸟新到,各位大手多多指教。
比较适合用来学习WebView控件使用或者做一个简单的客户端,第一次自动打开的页面和点击右上角小房子按钮转转跳到的链接都可以在MainActivity里面指定,其他情况看截图或者看源码吧,编译版本4.0.3编码GBK
本项目是一个实现自动连接指定的wifi的功能,可以检测...程序比较简单,仅供参考,javaapk之前也发布过很多关于androidwifi开发的源码,需要更多wifi相关源码可以访问http://www./?s=wifi 本项目编码UTF-8编译版本4.0.3
|- android4.0.3/ |- lichee/ |- buildroot/ |- build.sh |- linux-3.0/ `- out/ ``` ### 内核编译 内核编译是系统编译的重要组成部分,需要进入到lichee目录并执行相关的编译脚本来完成。具体的编译步骤在文档中...
本项目是一个祖玛游戏源码,游戏只有一张简单的地图,游戏分辨率适配貌似有点问题,画质也比较渣(也有可能是手机分辨率太高!...源码有注释,项目编译版本4.0.3编码GBK。想做这方面的朋友可以看一下
这是一款很不错的智能家居系统手机客户端应用源码,该应用的源码比较完整,而且功能也很强大,应用可以实现了蓝牙的链接,还包括PDA端部分,以及和智能终端部分,很好地实现了一套...项目编码UTF-8,默认编译版本4.0.3
基于havlenaptr ffmpeg 项目修改编译后的android工程文件源码,包括了编译后的libffmpeg_jni.so。已修改了原有代码中编译不过的错误,并且可以运行。(本机系统4.0.3,libjnivideo.so,libjniaudio.so应于你的系统...