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

时间: 2024-08-03 00:40:40

Mac下设置Android源代码编译环境的相关文章

《深入理解Android:Telephony原理剖析与最佳实践》一第2章 搭建Android源代码编译环境

第2章 搭建Android源代码编译环境 第1章介绍了Android以及其Telephony功能模块的基本结构,在本章中将带着读者去搭建Android编译环境.即使你已经能够在自己计算机上成功编译Android源代码了,也希望你能阅读本章内容,因为本章不乏一些技巧的总结和Android相关实用工具使用方法的介绍. Android的编译环境作为深入学习Android的基础,不可缺失,能够成功下载Android源代码并编译成功,对深入学习Android是非常关键和重要的一步:Android环境搭建比

Mac 下搭建Android开发环境

1.Java运行时: 在bash终端中输入java,如果没有安装java运行时会自动弹出一个Dialog提示是否安装,点击安装即可. 2.Eclipse + ADT + SDK: 在Mac下好像不需要下载Eclipse,又或者是现在Google专门打包定制了开发环境,反正只需要到:http://developer.android.com/sdk/index.html#download下载集成包即可.顺便白一句,在Mac下打开android.com明显快很多,没理由啊-- 无需单独下载Eclips

《深入理解Android》一第1章 搭建源代码编译环境

第1章 搭建源代码编译环境 本章主要内容 Android全源码开发环境: Android常用工具及相关技巧说明: WebKit代码目录结构及全书内容概要: WebKit源代码调试. 作为全书的第1章,首先要介绍的是Android系统以及WebKit全源码开发环境的背景信息.

《Android框架揭秘》——2.2节搭建Android平台编译环境

2.2 搭建Android平台编译环境Android框架揭秘前面,我们讲解了在Windows平台下安装虚拟机,以及在虚拟机下安装Ubuntu的相关知识.下面我们将讲解Android所需要的一些编译工具,以及下载Android平台源码的方法. 2.2.1 编译工具在Ubuntu Linux(32-bit x86环境)中编译Android平台之前,首先要在Linux中安装如下工具或包. 2.2.2 安装RepoAndroid源代码十分庞大,通过Git版本控制工具管理源码,Android是由kerne

msvc交叉编译:使用vcvarsall.bat设置命令行编译环境

一直以来我只知道vc设置命令行编译环境的批处理命令是%VS140COMNTOOLS%/Common7/Tools下的vsvars32.bat,(%VS140COMNTOOLS%为定义vs2015公共工具程序位置的环境变量,命令行窗口输入set就能找到,vs2010的对应定义为%VS100COMNTOOLS%) 微软的官网上有这个命令的说明: https://technet.microsoft.com/zh-cn/library/1700bbwd.aspx 但在执行这个命令生成的命令行环境下用nm

mac-求大神帮忙解决!Mac下在xcode里编译opencv出现下面错误请问怎么回事?

问题描述 求大神帮忙解决!Mac下在xcode里编译opencv出现下面错误请问怎么回事?

【IOS-COCOS2D-X 游戏开发之三】MAC下配置ANDROID NDK环境并搭建COCOS2D-X环境并ECLIPSE正常编译运行COCOS2DX自带TESTSDEMO项目!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/636.html 大家都知道Cocos2d-X是个多平台支持的游戏引擎,那么当今最主流的手机系统是iOS和Android,所以少不了Android的童鞋以及iOS的童鞋都偏向于Cocos2d-X引擎,而且更多的Android开发者还是习惯的IDE使用Eclipse,如今Cocos2d-X配置在Eclipse环境中的教

Mac OS下为Android Studio编译FFmpeg解码库的详细教程_Android

NDK部分 1.下载ndk这里就一笔带过了. 2.解压ndk不要解压,文件权限会出错.执行之,会自动解压,然后mv到想放的地方.我放到了"/usr/local/bin/android-ndk-r10d"(此目录之后用$NDK_DIR指代). 3.下载Ffmpeg我下的是2.5.3版本. 4.解压Ffmpeg解压Ffmpeg到$NDK_DIR/sources/ffmpeg-2.5.3. 5.修改Ffmpeg编译配置在ffmpeg-2.5.3目录下把configure文件中的这几行,目的是

Mac OS下为Android Studio编译FFmpeg解码库的详细教程

NDK部分 1.下载ndk 这里就一笔带过了. 2.解压ndk 不要解压,文件权限会出错.执行之,会自动解压,然后mv到想放的地方.我放到了"/usr/local/bin/android-ndk-r10d"(此目录之后用$NDK_DIR指代). 3.下载Ffmpeg 我下的是2.5.3版本. 4.解压Ffmpeg 解压Ffmpeg到$NDK_DIR/sources/ffmpeg-2.5.3. 5.修改Ffmpeg编译配置 在ffmpeg-2.5.3目录下把configure文件中的这几