在MAC系统中编译ANDROID源码与模拟器内核GoldFish

本文是我在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

    • 0
      点赞
    • 3
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值