Mac下设置Android源代码编译环境

Mac下设置Android源代码编译环境

在Mac下编译Android最麻烦的就是设置Android的编译环境了,做完这一步基本上剩下的就是近乎傻瓜式的操作了.说起来也简单就三步,设置大小写敏感的文件系统、安装编译工具、设置文件系统同时能打开的数量.

默认情况下,Mac OS运行在不区分大小写的文件系统上,git对这类型的文件系统支持不太好,有可能会导致git命令运行出错(比如git status)。因此,我们推荐在一个区分大小写的文件系统中,做与AOSP相关的操作。这很容易就可以用磁盘映像(disk image)做到,下面会讨论到.

一旦我们有了合适的文件系统,在Mac系统上编译master就变得非常简单、直接了。早起的分支,比如ICS,需要一些额外的工具.

创建大小写敏感的磁盘映像

为了创建一个大小写敏感的分区,我们可以使用带GUI界面的磁盘工具(Mac自带)或者使用命令行创建。根据我的经验,下载Android 6.0的代码大约需要50GB,编译后能膨胀到72GB。当然,如果磁盘空间紧张,下载源代码后,你可以手动将源码根目录下面的.repo目录删除,这样大约可以节省25GB的空间.

使用磁盘工具创建的步骤:

  1. 选择”新建映像(new Image)”
  2. 格式那里选择Mac Os扩展(区分大小写,日志式),大小至少选择50GB.

使用命令行创建

  1. 创建磁盘空间

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

    这会创建一个.dmg(或者也与可能是一个.dmg.sparseimage)文件,一旦挂载上,就是一个Android开发所需要的文件系统格式的磁盘.

如果你需要调整磁盘空间的大小,可以使用下面的命令:

  1. 调整磁盘空间的大小

    hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage

android.dmg(android.dmg.sparseimage)会保存在home(~)目录下,你可以在~/.bash_profile添加帮助函数:

使用mountAndroid来挂载映像:

# mount the android file image
function mountAndroid {
       hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }

使用 umountAndroid取消挂载:

# unmount the android file image
function umountAndroid() { hdiutil detach /Volumes/android; }

完成后,就可以看见在/Volumes/中挂载了一个叫android的磁盘。

安装JDK

Android开源项目(AOSP)的master分支需要java 8.在Mac系统上使用jdk 8u45 或者更新的版本.

5.0.x的分支需要Java 7.在Mac上,使用 use jdk-7u71-macosx-x64.dmg

开发从版本Gingerbread(Android 2.3)到KitKat(Android 4.4)需要使用Java 6

安装需要的包

从Apple的开发者网站下载XCode。推荐使用3.1.4或者更新(比如gcc 4.2)版本4.X可能会导致一些问题.
对于我而言,我安装了最新的Xcode(7.2版本,SDK 版本MacOSX10.11),但是由于不是Android官方推荐的版本,在编译前还需要作一些修改,具体的后面会介绍.
从 macports.org安装MacPorts.
注意:要确保/opt/local/bin 在path中排在/usr/bin之前.如果没有添加下面的东西到~/.bash_profile文件中.如果没有~/.bash_profile文件,那么就创建一个

export PATH=/opt/local/bin:$PATH

从MacPorts获取make, git, and GPG packages :

$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg

如果使用 Mac OS X v10.4, 还需要安装 bison:

$ POSIXLY_CORRECT=1 sudo port install bison

设置文件同时打开数量

在Mac中,默认的文件同时打开数实在太低,一个高速并行的编译进程运行时可能会遇到瓶颈。(注:Mac上限制最大打开文件数的原因是每打开一个文件,系统都需要内存来管理它们,内存是有限的资源)
为了增加最大文件打开数量,在~/.bash_profile中添加:

# 设置文件打开数量为1024
ulimit -S -n 1024

接下来,就可以下载Android的源代码了.剩下的就只是需要耐心了.

作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/p/5244442.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109006.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • cpu参数_CPU核心参数有哪些

    cpu参数_CPU核心参数有哪些文章目录CPU功能:CPU的组成:CPU参数:几个重要概念计算机的存储层次:RegisterCache睿频加速技术:超线程技术:CPU功能: 要完成一个任务,先编写一段程序,然后存入计算机主存。程序的代码就会翻译成一条条指令或数据字。cpu就会执行这些指令得到最终结果。读取指令要通过地址读取,地址保存在程序计数器中,读取的某个任务的全部指令会放入指令寄存器等待处理,cpu每次从中读取一条指令或…

    2025年6月17日
    3
  • vb 随机数_vb随机产生一个范围的数

    vb 随机数_vb随机产生一个范围的数[代码]

    2022年8月4日
    10
  • ES6基础:箭头函数

    ES6基础:箭头函数ES6基础系列(三)箭头函数简要分析一个为什么会有箭头函数,它的意义是什么?

    2022年6月15日
    38
  • 计算机病毒有哪几种,计算机病毒有哪几种

    计算机病毒有哪几种,计算机病毒有哪几种前言计算机病毒,也叫电脑病毒。它的种类很多。一旦感染这些病毒,轻则软件无法打开或文件被加密等;重则可能会使系统崩溃导致电脑无法正常启动,而电脑之所以会中病毒,主要是以下原因:1.用户在电脑安全方面做得不够严谨2.用户下载或打开了不明文件或链接3.未安装杀软以下是病毒及病毒的特征和解决方法。(1)JJY.exe:特征:此文件一旦打开,首先这个文件会启动它的动画,然后重启。重启之后你会发现你的…

    2022年5月3日
    53
  • 新手学c还是java_80x86汇编小站,新手学c还是java

    新手学c还是java_80x86汇编小站,新手学c还是java设计汇编语言的教学方案,决定就从8086汇编开始。学汇编,关注对系统底层的理解,指令太多,初学者伤不起。面对一个复杂的系统,教学中常需要设计一个简化的教学模型,抽取出其中的核心,以此得门而入。高龄的8086汇编,于当今的技术而言,是一个理想的教学模型。学生未来的工作可能基于80×86,可以用Linux汇编、ARM汇编,在8086汇编基础上再做拓展即可。学生将来在工作中可能压根就不会用汇编,通过学汇…

    2022年10月13日
    2
  • delphi xe5 安装 fastreport5「建议收藏」

    delphi xe5 安装 fastreport5「建议收藏」1、卸载fastreport42、删除fastreport4的librarypath3、安装fr5:打开recompile.exe,1、选择delphi版本 4、recompileallpackages ->compile,之后在fr5安装文件路径下会多出一个libD19文件夹4、添加fastreport5的librarypath为上一步的libD19文件夹另

    2022年7月18日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号