Android源码下载和编译过程
这是我在编译android源码时整理记录的编译步骤和错误解决方法,期间参考了一些网上的博客和教程。
第一步:
安装ubuntu12.04,分配一盘空间50G,2G内存。如果分配1G内存编译时将报错。(我是在虚拟机中安装ubuntu,分配了50G空间,编译源码需要空间较大,建议分配50G或更多,使用wubi安装最大只能分配30G)。
第二步:
安装JDK,此处选用JDK版本为JDK6-6u29 32位,下载链接http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html。下载jdk-6u29-linux-i586.bin。
1、在终端执行sudo su命令 输入密码进入root用户。
2、执行将文件jdk-6u29-linux-i586.bin复制到/usr/lib/jvm/java目录下,(若目录不存在则建立该目录,建立命令为mkdir /usr/lib/jvm/java)。
3、执行命令 ./ jdk-6u29-linux-i586.bin 执行该文件
4、修改环境变量 在/etc/profile 文件末尾添加如下几行:

5、执行source /etc/profile命令使之生效。
6、执行 java –version

出现 java version 1.6.0_29即可。确保当前JDK版本为1.6.0
注:/etc目录下environment profile bashrc的区别详情见:
http://blog.csdn.net/chenchong08/article/details/7833242。
7、安装编译所需的包。
执行apt-get install git-core gnupg flex bison gperf build-essential
apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
apt-get install libglapi-mesa-dev
apt-get install libx11-dev:i386
apt-get install libreadline6-dev:i386
apt-get install libgl1-mesa-glx:i386
apt-get install libgl1-mesa-dev
apt-get install g++-multilib mingw32
apt-get install tofrodos
apt-get install python-markdown
apt-get install libxml2-utils
apt-get install xsltproc
apt-get install zlib1g-dev:i386
8、安装repo
执行如下命令
apt-get install curl
apt-get install git
在/home/pc目录下创建android文件夹用于保存android源码和repo
执行如下命令:
mkdir /home/pc/android/android4.0 将源码保存在android下
在/etc/profile/最后添加如下代码
export PATH=$PATH:/home/pc/android
source /etc/profile
执行如下命令:
cd /home/pc/android
下载repo并修改权限
curl http://git-repo.googlecode.com/files/repo-1.13 >/home/pc/android/repo
chmod a+x repo
9、下载android源码
repo init -u https://android.googlesource.com/platform/manifest
在执行过程中需要输入用户名和邮箱
执行命令:
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.4_r1
(注:android版本参考:https://android.googlesource.com/platform/manifest/+refs)

执行命令:
repo sync

10、编译源码
进入源码目录下执行如下命令:
make showcommands 这样可以显示编译命令,使得编译的时候,屏幕没有输出的时候,不会感觉无聊吗
遇到的错误及解决方法:
ERROR: /bin/bash: line 2: javadoc: command not found
解决方法:执行:ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/javadoc /bin/javadoc
顺便可以做一下软连接,不然还会遇到类似错误:
ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/jar /bin/jar
ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/java /bin/java
ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/javah /bin/javah
ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/javac /bin/javac
Android源码下载和编译过程的更多相关文章
- android源码下载以及编译自己的ROM
android源码下载以及编译自己的ROM 最近发现kernel.org被墙了,为什么这种网站也能被墙了? 要想下载源码的话,只能绕过去了.下面是我从网上搜索到的一些下载方法: =========== ...
- Android学习系列(38)--Android源码下载和编译
前面多篇文章介绍到如何下载和编译Android或者CM源码,不过一直都是放在<拓展系列>里.随着学习的深入,android源码是非常有参考和学习价值,强烈推荐大家都去下载,编译,学习,所以 ...
- Android源码、内核编译
Android源码和内核的编译就是一场马拉松,每一个节点都耗时漫长,下载源码.编译源码.下载内核.编译内核,下载中途会断掉,编译中间会失败,求解再重来,又是一轮马拉松,于是每一步都要做好备份和记录,可 ...
- [Android 源码] Android源码下载
Android源码下载 为了能够顺利的下载Android的源码,同时也为了避免在网络上再次搜寻如何下载源码的麻烦,我把下载过程记录在这篇文档中. 官网中也有详细的介绍: http://source.a ...
- Android源码下载方法详解
转自:http://www.cnblogs.com/anakin/archive/2011/12/20/2295276.html Android源码下载方法详解 相信很多下载过内核的人都对这个很熟悉 ...
- Harmony OS 开发避坑指南——源码下载和编译
Harmony OS 开发避坑指南--源码下载和编译 本文介绍了如何下载鸿蒙系统源码,如何一次性配置可以编译三个目标平台(Hi3516,Hi3518和Hi3861)的编译环境,以及如何将源码编译为三个 ...
- 驾照理论模拟考试系统Android源码下载
驾照理论模拟考试系统Android源码下载 <ignore_js_op> 9.png (55.77 KB, 下载次数: 0) <ignore_js_op> 10.png ...
- Android源码下载
Android源码下载 1.安装git 2.安装repo 从这里 https://dl-ssl.google.com/dl/googlesource/git-repo/repo 下载repo文件 3. ...
- android源码下载/查看地址
源码下载: http://git.omapzoom.org/ 高通平台android源码下载地址: https://www.codeaurora.org/xwiki/bin/QAEP/WebHome ...
随机推荐
- Android 点击电话号码之间拨号
点击电话号码之间拨打电话,可用通过下面的方式实现: 假设电话号码以TextView的方式显示 1.Intent方式 在TextView的响应事件中 : String phone = tvphone.g ...
- IO流入门-第七章-BufferedReader
BufferedReader基本用法和方法示例 /* 字节 BufferedInputStream BufferedOutputStream 字符 BufferedReader:带有缓冲区的字符输入流 ...
- 查看python对象的属性
在Python语言中,有些库在使用时,在网络上找到的文档不全,这就需要查看相应的Python对象是否包含需要的函数或常量.下面介绍一下,如何查看Python对象中包含哪些属性,如成员函数.变量等,其中 ...
- Python菜鸟之路:Django 缓存
Django中提供了6种缓存方式: 开发调试 内存 文件 数据库 Memcache缓存(python-memcached模块) Memcache缓存(pylibmc模块) 1. 开发调试 # 此为开始 ...
- 【转】Spring中@Component的作用
今天在写程序的时候看见一个以前没有见过的注解(@Component),在网上查找过后,经过实践,决定把它记录下来. 1.@controller 控制器(注入服务) 用于标注控制层,相当于struts中 ...
- 棣小天儿的第一个python程序
根据给定的年月日,以数字形式打印出日期 months = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'Augu ...
- Hessian矩阵与多元函数极值
Hessian矩阵与多元函数极值 海塞矩阵(Hessian Matrix),又译作海森矩阵,是一个多元函数的二阶偏导数构成的方阵.虽然它是一个具有悠久历史的数学成果.可是在机器学习和图像处理(比如SI ...
- 安全技能树简版 正式发布——BY 余弦(知道创宇)
之前留意到知道创宇发布的<知道创宇研发技能表>,对自己有很大的启发,最近听说知道创宇的余弦大神创业了(题外话),还发布了<安全技能树简版V1>,仔细研读之后总体感觉不那么复杂了 ...
- Win7中的IIS配置asp时出现“出现403 文件夹禁止訪问错误”!
Win7中的IIS配置asp时出现"出现403 文件夹禁止訪问错误"! 在[默认文档]中设一下启动文件即可了.
- springcloud 开发时快速剔除无用服务
注册中心配置: # 关闭保护机制 eureka.server.enable-self-preservation=false #剔除失效服务间隔 eureka.server.eviction-inter ...