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的空间.
使用磁盘工具创建的步骤:
- 选择"新建映像(new Image)"
- 格式那里选择Mac Os扩展(区分大小写,日志式),大小至少选择50GB.
使用命令行创建
- 创建磁盘空间
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg
这会创建一个.dmg(或者也与可能是一个.dmg.sparseimage)文件,一旦挂载上,就是一个Android开发所需要的文件系统格式的磁盘.
如果你需要调整磁盘空间的大小,可以使用下面的命令:
2. 调整磁盘空间的大小
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/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2013-03-05 解决VS2005 VS2008 vs2010断点无效-源代码与原始版本不同