Mac OS 在移动硬盘上下载并编译Android源码

1 编译环境选择

要编译 Android 源文件,需要使用 Linux 或 Mac OS。目前不支持在 Windows 环境下进行编译。本文介绍在Mac OS下如何下载并编译Android源码。也可参考官方文档介绍

2 Android源码下载

2.1 移动硬盘格式化

Mac 电脑一般磁盘空间有限,可购买一个移动硬盘,把源码放到移动硬盘,新买的移动硬盘大部分默认是只支持Windows系统的NTFS格式,所以需要把移动硬盘格式化成Mac电脑上支持的ExFAT格式,如图,选中要格式化的移动硬盘,点击抹掉,然后输入名称,选择ExFAT,点击抹掉。


1.png

2.2 创建区分大小写的磁盘映像

在默认安装过程中,Mac OS 会在一个保留大小写但不区分大小写的文件系统中运行。Git 并不支持此类文件系统,而且此类文件系统会导致某些 Git 命令(例如 git status)的行为出现异常。因此,建议始终在区分大小写的文件系统中对 AOSP 源文件进行操作。有两种方式可以创建磁盘映像,具体操作如下:
方式一:使用命令:
由于AOSP比较大,但是我们存放在移动硬盘上,更大的空间能够更好地满足未来的需求,所以预留200G+的空间。
可以通过 shell 使用以下命令创建磁盘映像:

hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 200g /Volumes/aosp/android.dmg

当然,如果需要更大的存储卷,还可以使用以下命令来调整稀疏映像的大小:

hdiutil resize -size <new-size-you-want>g /Volumes/aosp/android.dmg

方式二:使用mac自带的磁盘工具
打开磁盘工具


2.png

然后选择“新建映像”->“空白映像”,出现下图:


3.jpg

设置空间大小,警记格式标注这栏要选择Mac OS扩展(区分大小写,日志式)的卷。点击“存储”,此时会/Volumes/aosp/下会生成一个android.dmg的镜像,双击这个镜像,将其挂载。这样在Mac Finder中就可以看到我们刚刚的创建的镜像了。

2.3 设置文件描述符数量上限

在 Mac OS 中,可同时打开的文件描述符的默认数量上限太低,在高度并行的编译流程中,可能会超出此上限。

要提高此上限,请将下列行添加到 ~/.bash_profile 中:

# set the number of open files to be 1024
ulimit -S -n 1024

2.4 下载源代码

Android 源代码树位于由 Google 托管的 Git 代码库中。Git 代码库中包含 Android 源代码的元数据,其中包括与对源代码进行的更改以及更改日期相关的元数据。下面介绍了如何下载特定 Android 代码流水线的源代码树。

2.4.1 安装 Repo

Repo 是一款工具,可让您在 Android 环境中更轻松地使用 Git。要详细了解 Repo,请参阅开发部分。
要安装 Repo,请执行以下操作:

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

如果你没有翻墙,可以使用清华大学的repo镜像:https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/,在

下载完成后将bin/repo打开,将里面的REPO_URL改成清华大学的镜像:

https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
4.jpg

2.4.2 初始化 Repo 客户端

1.创建源码工作目录

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY

2.初始化仓库

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

要对“master”以外的分支进行校验,请使用 -b 来指定相应分支。要查看分支列表,请参阅源代码标记和版本

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.1.1_r28

初始化成功后,系统将显示一条消息,告诉您 Repo 已在工作目录中完成初始化。客户端目录中现在应包含一个 .repo 目录,清单等文件将保存在该目录下。
3.下载 Android 源代码树
同步源码树,开始下载源码

repo sync

Android 源代码文件将位于工作目录中对应的项目名称下。下载成功后的源码目录:


5.png

2.5 编译Android源码

1.在源码的当前路径运行如下命令

source build/envsetup.sh

不出意外的话会输出如下信息:


6.png

2.生成android.ipr文件

make idegen && development/tools/idegen/idegen.sh
7.png

解决方法:打开build/core/combo/mac_version.mk,在下面加入一个10.12。
mac_sdk_versions_supported := 10.8 10.9 10.10 10.11 10.12
如果一切顺利,运行成功以后会在源码目录下生成android.ipr文件。


8.jpg

3.导入Android源码到Android Studio
打开AS点击“Open an existing Android Studio project”,导航到源码路径,打开android.ipr。


9.jpg

导入成功后:


10.jpg

这样就可以在AS上查看源码,但是源码的体积很大,如果全部导入会比较卡,可以排除一些代码,可以在android.iml下修改。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容