美文网首页android源码
Mac OS 在移动硬盘上下载并编译Android源码

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

作者: Jason_cyj | 来源:发表于2018-05-23 21:01 被阅读209次

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

    相关文章

      网友评论

        本文标题:Mac OS 在移动硬盘上下载并编译Android源码

        本文链接:https://www.haomeiwen.com/subject/qsfxjftx.html