本文是我在MAC下编译ANDROID源码和模拟器内核GoldFish时的过程与所遇到的问题解决方案,到目前已经编译完成并在模拟器中成功加载自己的内核,同时在系统中加载了一个内核模块进行测试,下面是编译和问题解决过程:
约定:
1. $代表在Mac终端进行命令操作,#代表在Android终端进行操作
Section 1: 环境准备
首先,在MAC中编译源码需要的文件系统格式是case-sensitive的,对所要存储代码的盘查看其信息,可知其是否case-sensitive
我的操作系统是MAC OS X 10.8.3,原本是非Case-sensitive的,这里是遇到的问题一,要下载源码Android官方已说明需要Case-sensitive,若不是,有两种解决方案
1. 创建一个Case-sensitive的镜相
方法如android官网:http://source.android.com/source/initializing.html 所示
2. 使用ipartition将整个盘转换为case-sensitive
本人采用的是此方法,毕竟不知道最后会用多少硬盘空间来做Android开发,ipartition网址:http://www.coriolis-systems.com/iPartition.php
因为需要从Recovery模式启动,需要用一个U盘作启动盘然后然后此工具进行case-sensitive的转换。
然后是相关软件的一些准备:
1> Xcode4
因为之前做过iOS开发,所以一直就有。XCode是需要在https://developer.apple.com/注册后下载的开发工具。
2>安装MacPorts
因为在Mac上不可能如Linux中用apt-get install等命令解析依赖获得库,需要在http://www.macports.org/install.php 中安装Macports来获取库
并将/opt/local/bin加入环境变量中,写入.bash_profile即可:
-
export PATH=$PATH:/opt/local/bin
然后用如下命令获取相关库:
-
$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg
这里有可能出现如下的问题:
Warning:
The Command Line Tools for Xcode don't appear to be installed;most ports will likely fail to build.
解决办法
在Terminal中执行sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
打开XCODE安装组件 Command line tools :
xcode> preferences >downloads>components然后选择Command line tools下载并安装。
3> JDK6/7
要编译Android还需要有JDK的支持,JDK6可在java.sun.com.下载,下载后将其加入到环境变量中,在此我用的JDK7, 并不是官网上推荐的JDK6
4> Python 2.6--2.7
直接下载即可 python.org. , 不过好像MAC中是自带的
Section 2: Android源码下载与编译
这部分在http://source.android.com/source/downloading.html中有详细说明每步作用
1. 准备源码下载工具repo
-