android源码

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

2018-05-23  本文已影响209人  Jason_cyj

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下修改。

上一篇下一篇

猜你喜欢

热点阅读