Android源码编译全过程记录(基于最新安卓5.1.0)【转】

本文转载自:http://blog.csdn.net/drg1612/article/details/44802533

我的编译条件:

1 Ubuntu Kylin 14.04 长期支持版 下载地址 : http://www.ubuntu-china.cn/download

2 我的电脑是联想G470 i3处理器 内存4G,120g固体硬盘,配置不高,但是足够编译了(编译花费了5小时)

3 Ubuntu我的分区状况:/home 100g(至少80g),swap分区8g(至少4g),空间请务必满足最低条件,不然无法编译成功

4 一个速度快且稳定的v-p`n,我用的是green,线路选择的是日本高速线路,差不多有10m带宽 

 

前后我总共花费了3 天的时间,一直在看网上的教程,期间还有下载和编译需要花费大量的时间,这个和我电脑配置低有很大的关系,最后结果还不错,成功运行了虚拟机。

 

开始具体过程:

1 首先检查是否满足编译的条件,缺一不可,如果你的swap分区(输入 free -m查看)如果没有4g,那么按照教程增加

具体教程见:http://blog.csdn.NET/mznewfacer/article/details/7334592

修改swap无需重启电脑

还有v-p~n的事情,我是花钱买了一个月,18块,不是广告,毕竟花钱稳定点,同步安卓源码库必须要挂。

 

2 然后按照官网教程一步一步来

具体见http://source.Android.com/source/initializing.html

我总结一个简化步骤:

(1)配置ubuntu的编译环境(仅限于安卓5.1.0,其余版本请到官网看各自的编译环境):

sudo apt-get update

sudo apt-get install openjdk-7-jdk

sudo apt-get install bison g++-multilib Git gperf libxml2-utils make zlib1g-dev:i386 zip

(2)同步5.1.0源码

2.1 安装repo(用于同步库的软件,基于git)

mkdir ~/bin

PATH=~/bin:$PATH

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

chmod a+~/bin/repo

2.2 开始下载源码(需要很长时间(14g左右),我当时记得挂了一晚上,下载好了,具体时间要看各自的v-p~n速度)

mkdir WORKING_DIRECTORY

cd WORKING_DIRECTORY

repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.0_r3

repo sync

同步完成之后,目录是这样的:


(3)开始编译

source build/envsetup.sh (编译环境参数)

lunch aosp_arm-eng (目标设备)

make -j4 (以4个线程开始编译)

如果顺利的话,我的机器花费了5个小时编译(out目录占29.1g),第一次编译花费时间很长,以后增量更新速度就快了,编译时间具体看个人机器了,编译完成之后,终端会显示:

 

然后输入emulator运行虚拟机:

 

祝各位编译顺利!

 

3 我遇到的问题

3.1问题1:过时的API

 注: 某些输入文件使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。

 

如果此问题造成编译停止,请看有没有执行过:sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip

如果没有造成编译停止,请忽略

 

3.2问题2:内存溢出

make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libwebviewchromium_intermediates/LINKED/libwebviewchromium.so] 错误 1
make: *** 正在等待未完成的任务....

 

swap分区过小了,试试改成6g。

 

最后附上对我此次编译帮助最大的文档,感谢他们:

1 一些编译出错的解决方案

http://www.cnblogs.com/tao560532/p/3302444.html

 

2 目录结构(学习资料)

http://www.it165.net/pro/html/201403/10393.html

 

3 深入理解Android编译系统(学习资料)

http://blog.csdn.Net/huangyabin001/article/details/36383031

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三方登录接入-qq,weibo-java

开发之前 需求:网站接入qq,sina微博登录,本文最后付效果图: 说明:大部分网站本身是需要用户概念的,很多操作依附于用户,而qq或微博作为一种登录方式指向用户而已,我参考了一下其他网站的做法&am…

python替换img的路径为新的路径_以“五智”为核心 南宁电信打造5G时代数字家庭新路径...

来源:通信信息报本报讯(特约记者 许辉坚)近日,中国电信广西南宁分公司在协助广西自治区通信管理局主办的“电信用户委员会体验活动”中,以发挥用户委员会的平台和纽带作用,促进持续改善电信服务质量为主题,以“五智”能…

0118——RTLabel和正则表达式

RTLabel和RegexKitLite都要导入第三方库 使用Regexkitlite库进行正则表达式的解析 1.库是使用MRR,如果在ARC工程里面使用这个类,必须在project->build phases->compile resources里面将regexKitLite.m的编译指令设为:-fno-objc-arc 2.需…

热带雨林绘画软件测试,儿童画教程|色彩练习与思维创想——好热闹的热带雨林!...

课程类型综合创意绘画课程参考课时90分钟工具材料勾线笔、水彩笔、卡纸课程构思小朋友们知道吗?热带雨林是地球上抵抗力和稳定性最高的生态系统,常年气候非常的炎热,雨量充沛,没有明显的季节差异,生物群落演替速度极快…

Linux命令行编辑快捷键

2019独角兽企业重金招聘Python工程师标准>>> ctrl ? 撤消前一次输入 ctrl c 另起一行 ctrl r 输入单词搜索历史命令 ctrl u 删除光标前面所有字符相当于VIM里d shift^ ctrl k 删除光标后面所有字符相当于VIM里d shift$ 删除 ctrl d 删除光标所在位置上的字符…

思科查看服务器启动配置文件,启动配置检查UCS

本文解释如何使用UCS将启动功能和命令迅速执行配置状态检查。UCS将启动功能允许用户迅速执行一粗略检查为了保证刀片适当地配置允许BIOS继续。意志启动配置检查是验证CPU和DIMM配置。此检查迅速帮助用户调试启动问题。思科UCS在意志启动配置检查提供几个工具帮助。这些工具包括…

lnmp下配置虚拟主机

一:首先熟悉几个命令 which php ---> which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件 whereis php ----> 将和php文件相关的文件都查找出来 service php-fpm/nginx/mysqld restart 重启服务 二&…

datazen Active Directory AD 配置

今天苦心经营的datazen 链接AD,文档已经无法吐槽了简单的几句话,根本不够用。 先说一下链接AD 的好处吧, 1 首先免去设置密码的麻烦,因为直接用AD账号的密码。 2 更安全,因为客户可不想自己的自己的系统,开…

Android CardView卡片布局 标签: 控件

CardView介绍 CardView是Android 5.0系统引入的控件,相当于FragmentLayout布局控件然后添加圆角及阴影的效果;CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。CardView应该被使用在显…

橱柜高度与身高对照表_下一套房子装修,橱柜就照这样打,布局尺寸这么详细,不信不好用...

闲在家的时候,动手给自己做一顿色香味俱全的美食,是一个享受的过程。享受的,不仅仅是味蕾的体验,择菜、洗菜、切菜、下锅...每一个环节都是。不过,这取决于你是否有一个好厨房;而厨房最最最重要的家具&…

.NET手记-JS获取Url参数

最近为App做活动专区,其中很多活动都是采用html 5页面来制作的。一方面体量较小,制作快速,更新维护容易;另一方面,嵌入App后适配效果也不会很差。 这里我们采用混编形式来从native app传参给web页面,我们采…

axios打包放到服务器上接口地址404_如何把网页文件放到云虚拟主机

把网页文件放到云虚拟主机上,可以用虚拟主机控制面板、FTP软件等方式。我们在运营网站时,经常需要制作一些特殊网页文件,比如404页面、sitemap页面、robots文件等,以及像站长平台严重文件、统计代码验证文件等,这些页面…

cisco数据中心理论小记-3

port channelSTP-防环,非根非指定口block.PCH-带宽利用率提升,逻辑上单链路 l2/l3都可以使用passive -LACP /active-Lacp/ on-Static无协议-on有协商-LACPneuxs 不支持PACPvPC---纯二层 技术,没有三层功能vitrual Port channel解决的是跨框 ,…

-----------最小生成树----------------

最小生成树(Minimum Spanning Tree) 1:是一棵树(是一种特殊的图) 连通的,没有回路 有V 个顶点 一定有 V-1条边 2:生成树 包含了全部的顶点,所有的V-1条边 都在图里 剩下的三个土 都是第一个完全图的生成树 只要是 4个顶点 3条边 没有回路 就是生成树 这3个图 随便的加一…

jQuery Easing 使用方法及其图解

从jQuery API 文档中可以知道,jQuery自定义动画的函数.animate( properties [, duration] [, easing] [, complete] )有四个参数: properties:一组包含作为动画属性和终值的样式属性和及其值的集合duration(可选):动画执行时间&am…

可以进行单元测试么_前端与单元测试

先来几个专业词汇,这样显得高大上一点(不存在的。)BDD: Behavior-Driven Development (行为驱动开发)TDD: Test-Driven Development (测试驱动开发)ATDD: Acceptance Test Driven Development(验收测试驱动开发)好,说完了&#xf…

excel 行高 上下留白_拒绝加班,工作中最常用的57个Excel小技巧来了!

今天高顿君分享的 Excel小技巧,全是工作是最常用且简单易操作的,共57个,希望对同学们有所帮助。(适合版本 Excel2007及以上)一、文件操作1、为excel文件添加打开密码文件 - 信息 - 保护工作簿 - 用密码进行加密。2、为…

经验分享:三步走教你升级企业NAS设备

前几年凡是对于数据存储有需求的企业都已经购买了相关的NAS产品,不过电脑和网络升级换代是比较频繁的,几年过去了中小企业对数据存储的需求也水涨船高,然而面对当初的NAS存储设备该如何处理呢?扔掉可惜使用又不如意的鸡肋问题能够…

获取访客进站关键词_拼多多访客突然下降是为什么?拼多多访客突然暴涨又是怎么回事?...

在当下这个互联网时代,可以说流量就代表这金钱。这一点在做电商的商家那里表现的就更为直观了,如果你做了一个拼多多的店铺,之前店铺的流量一直都比较好,而现在拼多多店铺的流量忽然下降了,那么店铺中的销售额就会受到…

通过Matlab实现离散序列卷积和

前言 年轻人,你对数学一无所知,你只是习惯了而已。—冯诺伊曼 Young man, in mathematics you dont understand things. You just get used to them.—John von Neumann。 一、卷积和是什么? 卷积的本质是描述一个瞬时动作(激励…