硬件环境:MacBook Pro Retina, 13-inch, Late 2013

    处理器  2.4 GHz Intel Core i5

    内存  8 GB 1600 MHz DDR3

    硬盘60G以上

软件环境:OS X 10.9.2

    GNU Make 3.81

    Python 2.7.5

    XCode 5.0.2

    java version "1.7.0_55"

    repo VERSION = (1, 21)

    某收费VPN(代理FAN墙是下载不了的,请使用VPN)

    (软件版本问题非常可能导致下载或者编译失败!!!高版本请降至这些版本...)

1.创建一个镜像。因为源码只能在大小写敏感的磁盘上编译(红色字体标示可以自行配置的参数,下同)

  hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 60g ~/android.dmg.sparsefile

  这里分了60G硬盘

2.加载分区

  hdiutil attach ~/android.dmg.sparsefile -mountpoint /Volumes/android

3.下载相应的工具

  主要说一下repo,请开vpn

    $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    $ chmod a+x ~/bin/repo

  然后将repo的所在路径加到环境变量方便后面使用

  java、make等工具请自行google,尽量用和博主相同的软件版本。

4.修改文件描述符限制

  在~/.bash_profile中添加以下内容:

    # set the number of open files to be 1024

    ulimit -S -n 1024

5.进入到加载好的分区下(上面的/Volumes/android)

  cd /Volumes/android/

  mkdir android-source

  cd android-source

6.开始下载

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

    如果init正常,执行

      repo sync 或 repo sync -j4

 (其他设备或其他版本的源码请查阅

  https://source.android.com/source/build-numbers.html

  https://android.googlesource.com/platform/manifest

  )

  附图一张

7.开始编译

  在android-source目录下执行

    make

  然后就可以等待编译完成了。

  博主编译中 5小时50分钟时 遇到了一个问题

解决方案是将/Volumes/android/external/iptables/include/linux/netfilter_ipv4/ipt_ECN.h中的

#include <linux/netfilter/xt_DSCP.h>

改成

#include <linux/netfilter/xt_dscp.h>

总结一下过程中遇到的几个问题

  1.repo版本。非官方的repo工具可能有秘钥问题或者下载失败,请使用官方版本。楼主用旧版的repo下了好久,后来都删了重新下的。。。

  2.VPN不稳定。这个问题不多解释了大家都懂,lz也没有买比较贵的专线VPN。解决办法有一个,mac下可以用apple script编写一个VPN自动重连的脚本,存成App即可。方法请自行Google。但是偶尔也会有已经断网但是VPN没有断的情况,就只能手动重连了。

  3.下载和编译时间过长。下载没有统计,估计不算repo出问题的那次,也超过24小时了。dalvik完全换成ART后加上增加了5000个API,编译时间明显长了很多,编译总耗时7小时30分钟。源码13.4G,repo文件20G,编译完的源码+build出来的文件共43G。

  4.感谢官网文档:http://source.android.com/source/downloading.html

   感谢某人的文章:http://blog.csdn.net/bulreed/article/details/22783467

最后上图两张:

android 5.0 (lollipop)源码编译环境搭建(Mac OS X)的更多相关文章

  1. ffmpeg源码编译环境搭建

    ffmpeg是视频开发最常用到的开源软件,FFmpeg功能强大,用途广泛,提供几乎所有你能够想到的与视频开发相关的操作,许多商业软件都以ffmpeg为基础进行开发定制. FFmpeg: FFmpeg ...

  2. Android 源码编译环境搭建(64位Ubuntu)各种依赖包安装

    1.准备: 普通PC(要求能上网), PC的操作系统Ubuntu 10.04 LTS(64位的),已经下载好的Android 1.6_r1的源代码. 2.Linux的依赖package安装: 为了更快 ...

  3. Hadoop源码编译环境搭建

    准备工具: maven 3.0.0版本或者更高版本(配置中心库) protocbuff 2.5.0 http://www.zlib.net/ git bash(Windows环境可以用此工具执行编译命 ...

  4. Jmeter3.2源码编译环境搭建

    1.下载jmeter3.2源码 https://github.com/apache/jmeter/tree/v3_2 https://blog.csdn.net/fly_to_higher/artic ...

  5. Jmeter3.2源码编译环境搭建(转)

    1.下载jmeter3.2源码 https://github.com/apache/jmeter/tree/v3_2 https://blog.csdn.net/fly_to_higher/artic ...

  6. Hadoop源码阅读环境搭建(IDEA)

    拿到一份Hadoop源码之后,经常关注的两件事情就是 1.怎么阅读?涉及IDEA和Eclipse工程搭建.IDEA搭建,选择源码,逐步导入即可:Eclipse可以选择后台生成工程,也可以选择IDE导入 ...

  7. 【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码

    http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android ...

  8. 【Android开发】构建Android源码编译环境

    原文:http://android.eoe.cn/topic/android_sdk 构建Android源码编译环境 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  9. Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程

    Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程   在新的Ubuntu 64位系统下去编译早期的安卓源码是会出现很多问题的,因为64位系统在安装完成后,很多32位的兼容 ...

随机推荐

  1. 最短路(Floyd_Warshall) POJ 1125 Stockbroker Grapevine

    题目传送门 /* 最短路:Floyd模板题 主要是两点最短的距离和起始位置 http://blog.csdn.net/y990041769/article/details/37955253 */ #i ...

  2. js中等性操作符(==)、关系操作符(<,>)和布尔操作符(!)比较规则

    最近一直在笔试面试,经常碰到例如 123=='123'.'abc'==true等问题,其中有答对的,也有答错的,主要原因还是对ECMAScript的规范没有理解清楚,很多题目没有具体分析所导致.现查阅 ...

  3. 响应式HTML5+CSS3 网站开发测试实践

    仅仅利用media query适配样式是远远不够的,并没有考虑触屏下的行为和特有的内容组织方式的不同.简单在桌面版基础上叠加mobile版的代码,会带来请求增多.流量.性能.代码冗余等诸多方面问题.有 ...

  4. COJ 删除数字

    试题描述 输入正整数N和M,在N中删除掉M位,能留下的最大整数是多少? 输入 正整数N和M 输出 留下的最大整数 输入示例 233390323 5 输出示例 9323 其他说明 1<=N< ...

  5. 地球上最大的PHP站点 后端技术解密

    Facebook的扩展性挑战 在我们讨论细节之前,这里有一些Facebook已经做的软件规模: ◆Facebook有570000000000每月页面浏览量 (据Google Ad Planner) ◆ ...

  6. 过滤html字符的方法

    昨天在看公司网站的产品详细页面,发现只有一个公司的JS产品轮换特效不会出,找了半天,程序都是一样的,原因是什么呢?原来是公司的别名是xiandahg,里面含有and字符被过滤掉了. public st ...

  7. <!--[if IE]>….<![endif]--> (<!--[if !IE]>||<![endif]-->)的用法

    1. <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> 2. <!--[if IE]> 所有的IE可识别 ...

  8. Git补丁

    引子: 上班有问题没有解决,在家里搞定了,于是把改动打成一个补丁,明天应用到公司的工作电脑上.(以下内容转自别处) 1.创建补丁,比如把最新的两次提交纪录转化为补丁文件,可以用如下命令: git fo ...

  9. Qt resizeEvent 控件居中设置

    在Qt中我们有时需要让一个控件在窗口居中或是在父控件中居中,而且在窗口拉伸时仍然保持正中央的位置.这里介绍一种方法,用到了主窗口的响应函数resizeEvent(QResizeEvent* event ...

  10. 【液晶模块系列基础视频】4.2.X-GUI图形界面库-画矩形函数简介

    [液晶模块系列基础视频]4.2.X-GUI图形界面库-画矩形函数简介 ============================== 技术论坛:http://www.eeschool.org 博客地址: ...