android4.0源码编译

Android4.0.1 源码下载,模拟器编译和运行 经过漫长的等待, android4.0 (Ice Cream Sandwich)的源码终于放出来了 (三星说,嘿嘿,我的产品已经开卖了好几个星期了,不要意思,又领先了一步),本博客将在第一时间与大家分享,下载,编译运行 android ICS 的经验。 以下是详细内容: Android ICS 下载 http://source.android.com/source/downloading. 阅读详情

PDF文件:http://androidboy365.iteye.com/admin/blogs/1423462


在之前的文章中,为读者介绍了《Ubuntu Linux下android源码下载方法》、《Ubuntu11.10下配置android的Eclipse开发环境》以及配置过程中遇到的一些问题,本文继续为大家介绍Ubuntu11.10下android源码4.0.3的编译方法。

1、初始化编译环境

软件需求:
Python2.5-2.7,可以http://www.python.org/download/下载(Ubuntu11.10自带)。
JDK6:编译Gingerbread或更新版本;JDK5:编译Froyo或更早版本。可以到http://java.sun.com/javase/downloads/下载,或通过Ubuntu软件中心下载更方便。
Git1.7或更新版本,可以到http://git-scm.com/download下载,或直接在终端下sudo apt-get install git下载即可。

安装JDK
在Ubuntu下安装JDK比较简单,可以在软件中心直接搜索安装,也可以按以下方法安装:
安装JAVA6:

1 $ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
2 $ sudo apt-get update
3 $ sudo apt-get install sun-java6-jdk

 安装JAVA5: 

1 $ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"
2 $ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse"
3 $ sudo apt-get update
4 $ sudo apt-get install sun-java5-jdk

 安装编译所需的软件包: 

1 $ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
2  
3 $ 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

 配置USB访问权限
在GNU/Linux系统下(特别是Ubuntu系统下),默认配置下普通用户不能直接访问USB设备,需要对系统进行一些配置。

以超级用户创建新配置文件/etc/udev/rules.d/51-android.rules,并将以下内容拷贝到新配置文件中:

01 # adb protocol on passion (Nexus One)
02 SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
03 # fastboot protocol on passion (Nexus One)
04 SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
05 # adb protocol on crespo/crespo4g (Nexus S)
06 SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
07 # fastboot protocol on crespo/crespo4g (Nexus S)
08 SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
09 # adb protocol on stingray/wingray (Xoom)
10 SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
11 # fastboot protocol on stingray/wingray (Xoom)
12 SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
13 # adb protocol on maguro/toro (Galaxy Nexus)
14 SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
15 # fastboot protocol on maguro/toro (Galaxy Nexus)
16 SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
17 # adb protocol on panda (PandaBoard)
18 SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
19 # fastboot protocol on panda (PandaBoard)
20 SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"

 并且将以上内容中的

1 “<username>”

 修改为用户名,如修改为”Taskiller”。

2、配置ccache
ccache(“compiler cache”的缩写)是一个编译器缓存,该工具会高速缓存编译生成的信息,并在编译的特定部分使用高速缓存的信息, 比如头文件,这样就节省了通常使用cpp解析这些信息所需要的时间。如果您编译清单2中的文件,假定foobar.h中包含对其他头文件的引用,ccache会用那个文件的 cpp-parsed版本来取代include声明。ccache只是将最终的文本拷贝到文件中,使得它可以立即被编译,而不是真正去读取、理解并解释其内容。

这一步是可选的。我在编译的时候没有配置ccache,最后的编译时间用了尼玛至少六个小时以上,虽然目前我还没有尝试过配置ccache后的编译速度,这里还是建议读者配置一下,以节省编译时间,不要像我这么悲催。配置方法如下:
打开用户目录下的.bashrc,将下面语句添加到文件后面并保存退出:

1 export USE_CCACHE=1

 默认情况下cache(缓存)会保存在~/.ccache目录下,如果主目录位于NFS或其他非本地文件系统上,也要将下面语句添加到.bashrc中,之后保存并退出:

1 export CCACHE_DIR=<path-to-your-cache-directory>

 将

1 <path-to-your-cache-directory>修改为cache目录的位置。

 推荐的cache目录大小为50-100GB,在命令行执行以下命令:

1 prebuilt/linux-x86/ccache/ccache -M 50G

 该设置会保存到CCACHE_DIR中,且该命令是长效的,不会因系统重启而失效。

3、换用gcc与g++的较低版本

Ubuntu11.10自带的gcc与g++版本为4.6,用该版本编译android时会遇到一些错误,如:

1 host Prebuilt: monkeyrunner (out/host/linux-x86/obj/EXECUTABLES/monkeyrunner_intermediates/monkeyrunner)
2 host C++: obbtool <= frameworks/base/tools/obbtool/Main.cpp
3 <命令行>:0:0: 错误: “_FORTIFY_SOURCE”重定义 [-Werror]
4 <built-in>:0:0: 附注: 这是先前定义的位置
5 cc1plus:所有的警告都被当作是错误

 网上有文章说修改build/core/combo/HOST_linux-x86.mk文件,将

1 HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0

 修改成

1 HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

 这种方法虽然能解决该问题,但也会引出新的问题,还要继续不断的修改,很麻烦,而且也会破坏android源码的原生状态。但是如果使用4.4版本的gcc与g++,则不会出现这些错误,方法如下:

通过gcc -v命令可以发现gcc库在/usr/lib/gcc/i686-linux-gnu目录下,该目录下有当前系统支持的各种版本gcc库 。在安装gcc 4.4前该目录下是没有4.4目录的,安装gcc 4.4后该目录下就会多出4.4这个目录,且该4.4目录下有各种相应库文件。

ubuntu 32bit系统下安装gcc 4.4的最好方法是仅用以下两条命令,不需要其它命令,否则编译时可能会出错。

1 $sudo apt-get install gcc-4.4
2 $sudo apt-get install g++-4.4

 装完后进入到/usr/bin目录下

1 $ls -l gcc*

 会显示以下结果

lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6 
-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4 
-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6

发现gcc链接到gcc-4.6, 需要将它改为链接到gcc-4.4,方法如下:

1 $sudo mv gcc gcc.bak
2 $sudo ln -s gcc-4.4 gcc

 同理,对g++也做同样的修改:

1 $ls -l g++*

输出结果如下:

lrwxrwxrwx 1 root root 7 2011-08-14 15:17 g++ -> g++-4.6 
-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4 
-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6

需要将g++链接改为g++-4.4:

1 $sudo mv g++ g++.bak
2 $sudo ln -s g++-4.4 g++

 

再查看gcc和g++版本号:
gcc -v
g++ -v
均显示gcc version 4.4.6 ,说明gcc 4.4安装成功。

4、接下来便是对android源码进行编译

进入到源码目录,本人的目录为/home/tasiller/android/source。用envsetup.sh脚本初始化安装环境。可用以下代码:

1 $source build/envsetup.sh

 或

1 $. build/envsetup.sh

 注意.后面有一个空格。

之后,选择要编译的目标:

1 $lunch full-eng

 之后便是用make命令编译源码了:

1 $make -j4

 

这里-j4表示用四个线程编译,4表示线程数,读者可根据自己机器的情况设置(如机器为单CPU双核处理器,可设置为-j2或-j4,即该数为CPU内核总数或内核总数的2倍。)

之后就是漫长的等待了。。。

编译完成后,可以在源码目录的out/target/product/generic/目录下看到编译好的ramdisk.img、system.img和userdata.img了。 

原文地址:http://my.oschina.net/taskiller/blog/38853

Android4.0.1源码及内核编译效果 源码编译环境配置参考:1、官网资料 http://source.android.com/source/initializing.html                                                  2、http://blog.csdn.net/luoshengyang/article/details/6559955 阅读详情

相关推荐

永磁同步电机FOC控制实战:如何用线性死区补偿解决低速抖动问题(附Matlab仿真代码)

本文详细介绍了永磁同步电机FOC控制中线性死区补偿技术的工程实现方法,有效解决低速抖动问题。通过Matlab/Simulink仿真验证,该方案可将转矩脉动降低70%以上,显著提升系统稳定性。文章包含完整的数学模型构建、Simulink实现步骤及参数整定技巧,为工程师提供实用解决方案。

weixin_30872499的博客 154

ubuntu10.04编译android4.0.3的要点

硬盘安装 ubuntu10.04  64bt后 1, 按装网卡 sudo make install sudo insmod alx.ko   然后就可以连接网络   2, 安装文件夹共享, 以便xp访问 sudo apt-get install samba libpam-smbpass 然后就可以共享文件夹了,xp也能访问了   3

kyrinleo的专栏 664

一种基于频域滤波法消除干扰项与角谱法重构技术的数字全息显微台阶形貌测量实例分析

一种基于频域滤波法消除干扰项与角谱法重构技术的数字全息显微台阶形貌测量实例分析

简单光学 2034

Ubuntu11.10下编译android源码4.0.3

http://www.2cto.com/os/201201/116762.html   在之前的文章中,为读者介绍了《Ubuntu Linux下android源码下载方法》、《Ubuntu11.10下配置android的Eclipse开发环境》、配置过程中遇到的一些问题,本文继续为大家介绍Ubuntu11.10下android源码4.0.3的编译方法。   1、初始化编译环境   软件

524

complier lab2

只需支持定义 main 函数即可不带参数 int main(){...}带参数 int main(int argc, int argv){...}

qq_43581843的博客 904

【ROS2】Arduino系列之机器人底盘实现

介绍ros中提供的一个已经封装了的模块: ros_arduino_bridge,该模块由下位机驱动和上位机控制两部分组成,通过该模块可以更为快捷、方便的实现自己的机器人平台

guilin 1483

android编译source,在Ubuntu上下载、编译和安装Android4.0.3 source与 kernel 源码

首先要注意的是:在进行环境变量的配置或者涉及到跟目录有关的操作时一定要注意你自己的目录是什么,你自己的android source放在哪个目录下,不要完全copy我的PATH的路径 。说明:home/dell/WORKING_DIRECTORY --我所有的android源码都放在这个目录中,而且还在这个目录下建立了一个kernel目录,将内核源码放在里面。即,我的内核目录是:home/del...

weixin_32485901的博客 598

PMBus协议解析:基于I2C的电源管理实战与TMS320F28003x驱动开发

在嵌入式系统与服务器电源设计中,数字电源管理总线是实现高效、可靠电源监控与控制的关键技术。PMBus协议基于广泛应用的I2C总线物理层,通过定义标准化的命令集、数据格式与时序规范,为多路电源的电压电流监控、动态调整及故障处理提供了高效解决方案。其技术价值在于通过硬件自动处理协议解析、时钟拉伸与中断,显著降低软件复杂度,使开发者能聚焦于电源环路设计等核心逻辑。该协议广泛应用于服务器、通信基站及高性能计算板卡等场景,通过引入数据包错误检查、专用告警线等机制,确保了电源管理的可靠性。本文以TI TMS320F28

weixin_29189377的博客 374

Ubuntu 12.04 64位编译android 4.1.1_r3

一.初始化编译环境 google推荐的编译环境是在Ubuntu LTS(10.04),但是新的LTS版本12.04已经出来,没必要在旧版本上做文章了,很多行特性和驱动10.04上都没有(例如无线网卡驱动),所以果断选择12.04的LTS版本。 对于2.3.X和更新的版本,需要64位的系统,之前的老版本2.2以下(包括2.2)可以在32位版本上编译,另外不推荐虚拟机,因为官网...

dowhathowtodo 170

OpenAI Realtime API实时语音交互实战指南

实时语音交互是人机自然对话的核心能力,其本质在于构建低延迟、双向、流式协同的音频-语义闭环。它突破传统REST API的请求-响应范式,依托WebSocket实现毫秒级音频输入流(audio.delta)、模型生成流(text/audio.delta)与动态控制流(session.update)三重并行。该技术显著降低端到端延迟至300ms以内,支撑语音助手、智能客服、对话式教育等强实时场景。本文聚焦OpenAI Realtime API的工程落地,详解PCM音频流处理、VAD语音活动检测、AudioCon

weixin_32285357的博客 392

【SpringBoot 3.x 第56节】再见 Feign?原生 HTTP 接口强势上位,这才是微服务调用的正确姿势!

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1017

Ubuntu10.04下载并编译Android4.3源代码

去年用Ubuntu10.10成功下载并编译Android4.0了的源代码,见文章《Ubuntu10.10下载并编译Android4.0》 不过,那时候,刚接触Linux和Android不久,基本上都是百度来的教程,所以,对于Android源代码的下载方式和编译过程并没有太多深入的了解,所以现在趁着Android4.3源代码也提供下载了,重新学习一下。     首先,官方网站对于Android源

一路到黑 5370

【乐企文件生成工程】添加数据库、SpringEvent事件支持

更新!1、乐企版式文件生成工程添加数据库支持2、乐企版式文件生成工程添加事件机制,异步处理文件生成,提高系统并发能力。

九七的博客 336

解决源码编译android 4.0.4和SDK 后无法更新安卓平台的更新问题

解决源码编译android 4.0.4和SDK 后无法更新安卓平台的更新问题

闲云野鹤专栏 2303

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

android源码编译烧鸡,android4.0源码下载 编译 系统体验~图解

近来着眼于ANDROID4.0的关注与研究,第一时间把ANDROID4.0源码下 下来了,只是时间问题,所以没能第一时间把过程记录下来,今天算是富裕点时间就给写下来,希望能给灼热于ANDROID继续平台研究而又未及时获得相关资 源的热机友们做个简单的参考,好了,废话不多说,我就直接贴图吧,现在很简单,只要你是LINUX系统,一直并使其开发,那就不必要考虑之前JDK环境的 问题,直接从基本环境确定下...

weixin_30647853的博客 184

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

编译源码 android4,Android4.0源码编译方法以及错误解决方案

历时一个星期,终于将android4.0源码编译成功,中间经历了各种曲折,非常之蛋疼,现在将编译方法共享一下:Android源码编译步骤:(基于ubuntu11.10和android4.0)1. 安装JDK2. 配置JDK环境变量gedit /etc/environment在打开的文件中,添加如下几行:PATH=$PATH:$JAVA_HOME/bin($PATH为之前的PATH环境变量的...

weixin_39551993的博客 310

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android4.0源码下载 编译 系统体验~图解

近来着眼于ANDROID4.0的关注与研究,第一时间把ANDROID4.0源码下下来了,只是时间问题,所以没能第一时间把过程记录下来,今天算是富裕点时间就给写下来,希望能给灼热于ANDROID继续平台研究而又未及时获得相关资源的热机友们做个简单的参考,好了,废话不多说,我就直接贴图吧,现在很简单,只要你是LINUX系统,一直并使其开发,那就不必要考虑之前JDK环境的问题,直接从基本环境确定下入手吧

android应用开发详解 1万+

android源码编译烧鸡,Android 4.0源码下载 编译 系统体验图解

近来着眼于Android4.0的关注与研究,第一时间把ANDROID4.0源码下下来了,只是时间问题,所以没能第一时间把过程记录下来,今天算是富裕点时间就给写下来,希望能给灼热于ANDROID继续平台研究而又未及时获得相关资源的热机友们做个简单的参考,好了,废话不多说,我就直接贴图吧,现在很简单,只要你是LINUX系统,一直并使其开发,那就不必要考虑之前JDK环境的问题,直接从基本环境确定下入手吧...

weixin_39851261的博客 195

android4.0源码编译过程中中各种错误解决,android源码编译错误

make: *** [out/host/linux-x86/obj/EXECUTABLES/emugen_intermediates/main.o] error 1解决办法: 需要在 development/tools/emulator/opengl/host/tools/emugen/main.cpp在声明中增加一条头文件声明 #includemake: *** [out/host/linux-...

weixin_28900437的博客 495

Ubuntu12.04实现Android 4.0开发环境搭建及源码编译

Android 4.0开发环境搭建及源码编译 准备工作: 建议60GB以上本地磁盘 下载所有软件安装包 链接:百度网盘 提取码:1234 参考步骤: 安装VMware Workstation pro 安装ubuntu-12.04-desktop-amd64 Ubuntu12.04更换镜像源 可参考我的一篇换源文章Ubuntu12.04更换镜像源与valgrind3.2.0的安装 gcc、g++降版本 可参考我的另一篇降版本文章Ubuntu12.04降低gcc,g++版本为4

u013571202的博客 7377

Ubuntu下Android4.0源码的下载和编译

获取Android4.0源码,也可以参考Android官网的下载步骤:官网下载参考 第一步,首先建立repo环境,把此目录添加到环境变量中。 mkdir ~/bin PATH=~/bin:$PATH 第二步,下载repo工具。 sudo apt-get install git-core curl curl https://dl-ssl.google.com/dl/googlesourc

zhuyouleixuexi的专栏 1014

编译安卓4.0源码出现错误

编译安卓4.0源码出现错误 make: *** [out/target/common/obj/APPS/android.core.tests.libcore.package.org.no-core-tests-res_intermediates/noproguard.classes-with-local.dex] Aborted (core dumped) 此问题是因为编译android4.0

intint的专栏 742

如何下载并编译Android4.0内核源码goldfish(图文)

关于如何下载Android4.0源码,请查看我的博客内另一篇文章(同样是图文教程): http://blog.csdn.net/flydream0/article/details/7036156 如何编译Android4.0源码请看: http://blog.csdn.net/flydream0/article/details/7046612 下面进入正题: 第一步:下载

放飞梦想,成就未来 4万+

ubuntu20.4编译AOSP安卓源码(AndroidP android-9.0.0_r9)

win10预览版+ubuntu20.4LTS编译安卓aosp android-9.0.0_r9(Android P),本教程比网上绝大多数教程下载快,且占用硬盘资源至少少50G,大大节省了硬盘资源

mvp_Dawn的博客 1万+

android 4.0.3最新源码下载编译

最新的android4.0源代码公布以后,相信很多人和我一样都跃跃欲试,其实4.0的代码下载和编译和以前的版本差不多,但是有一些小的差别,写下来供不明真相的新手来参考 首先,开发环境,google建议在ubuntu10.0.4下,并且最好是64位,既然是为了工作和学习,就尽量按照官方要求的来吧。 Python 2.5 -- 2.7  ubuntu10.0.4已经默认安装了,所以不需要安

pingqingbo的专栏 830

android4.0源码编译过程中中各种错误解决,Android4.0源码编译方法以及异常解决方案...

Android4.0源码编译方法以及错误解决方案历时一个星期,终于将android4.0源码编译成功,中间经历了各种曲折,非常之蛋疼,现在将编译方法共享一下:Android源码编译步骤:(基于ubuntu11.10和android4.0)1.安装JDK2.配置JDK环境变量gedit /etc/environment在打开的文件中,添加如下几行:PATH=$PATH:$JAVA_HOM...

weixin_42515295的博客 526
上一篇: 耍帅秘技——Eclipse快捷键大赏
下一篇: 4.0ICS编译
androidboy365
博客等级 码龄16年 35粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值