歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Mac OS X下用Eclipse浏覽和編譯Android源代碼

為了能夠同時開發iPhone應用程序和Android應用程序,我將所有的開發環境都集成到了自己的Macbook上,雖然用Macbook開發普通的Android應用程序沒什麼問題,但是你要是想用Eclipse浏覽和編譯Android源代碼並且對其SDK進行調試,就是很麻煩的事情了。通過Google發現絕大部分Android源代碼的編譯和開發環境都是在Ubantu系統上,雖然Android官網提供了在MacOS X上編譯源碼的方式,但是嘗試了多次總是發現有問題。

剛好這段時間Android源碼網站被黑,終於找了一個方法能夠下載到完整的代碼,於是就借此機會再次嘗試一下編譯源碼,同時在Eclipse裡面調試成功,記錄下來整個過程方便以後查閱。

.設置MacOS X編譯環境

這一點是根據Android官方網站提供的方法來設置的,我這裡只做了一些翻譯和解釋工作。我自己的Macbook已經升級到了Lion,對於操作系統配置什麼就不用去擔心了。直接上吧。

1.創建一個大小寫敏感的磁盤鏡像文件

由於編譯Android源代碼需要將代碼存放在大小寫敏感的磁盤當中,所以我們需要首先創建一個大小寫敏感的磁盤鏡像文件(如果你的磁盤已經是大小寫敏感的,則省略這個步驟,直接進入步驟2.

進入應用程序/實用工具/磁盤工具,選擇文件->新建->新建空白映像:


其中名稱可以隨意,大小可以選擇自定義30G,格式選用MacOs擴展(區分大小寫),映像格式選擇稀疏磁盤映像,這樣文件的大小會隨著文件的多少而增長,不用一上來就搞30G那麼大,其它都是默認選項。

同時,你還可以通過命令行方式生成該磁盤鏡像:

$hdiutil create -type SPARSE -fs  'Case-sensitive Journaled HFS+' -size 30g /path-to-image/AndroidDisk.sparseimage

生成的硬盤鏡像文件名就是AndroidDisk.sparseimage了。似乎創建完以後OS會自動把這個鏡像加載上去,掛載點是/Volumes/android,其中android就是上面我們為磁盤鏡像設置的名稱

另外也可以將如下一行代碼加入到~/.profile當中,function mountAndroid { hdiutil attach /path-to-image/AndroidDisk.sparseimage -mountpoint  /Volumes/android; }這樣以後每次用mountAndroid命令就行了。

2.安裝所需要的包

1)首先你要安裝的就是Xcode,由於我的機器本身就是用來開發iPhone應用程序的,所以我的Xcode是最新的版本,如果你沒有Xcode,可以到蘋果的官網注冊一個appleid,然後可以免費下載最新的Xcode工具和MacOS SDK

2)從macports.org安裝MacPorts工具

安裝MacPorts之前需要確認環境變量PATH中,/opt/local/bin出現在/usr/bin之前,可以運行一下這行來確認:

$echo $PATH

否則,就將如下代碼加入~/.profile當中。

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

3)從MacPorts安裝make,git, and GPG packages

$POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg

4)將gmake3.82還原到3.81

gmake3.82版本存在一個Bug,所以我們要將其還原為3.81版本。

$sudo vim /opt/local/etc/macports/sources.conf

然後在rsync那行的上面一行加上:

file:///Users/Shared/dports

然後按照下面的步驟依次執行:

$mkdir /Users/Shared/dports

$cd /Users/Shared/dports/

$svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/devel/gmake/

$portindex /Users/Shared/dports

$ sudo port install gmake @3.81

執行完成後,檢查一下gmake的版本:

$gmake –version

GNUMake 3.81

5)修改文件標識符限制

於是最後下載Android源碼前的最後一步就是,修改文件標識符限制:
由於MacOS默認將同時打開的文件標識符數量限制得太小,並行編譯處理時可能會超出這個限制。所以在 ~/.profile裡加上這麼一段:

#set the number of open files to be 1024

ulimit -S -n 1024


.下載gingerbread源代碼

Android源代碼網站android.git.kernel.org已經被黑了很長一段時間,後來在網上另外找到一網站提供源代碼下載。

1.創建~/bin/目錄

$mkdir ~/bin

$PATH=~/bin:$PATH

2.安裝repo

$curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo

3.設置repo可執行權限

$chmoda +x ~/bin/repo

4.修改~/bin/repo文件將第五行

REPO_URL='https://code.google.com/p/git-repo/'

改為

REPO_URL='http://code.google.com/p/git-repo/'

5.新建目錄gingerbread,並進入該目錄

$mkdir android_gingerbread_src

$cd android_gingerbread_src

6.執行repoinit

$repo init -u git://Android.git.linaro.org/platform/manifest.git -bgingerbread

7.找到android_gingerbread_src目錄中的.repo下面的manifest.xml文件,該文件只是一個鏈接,實際上是manifest目錄下面的default.xml文件,將

fetch="git://Android.git.kernel.org/"

改為

fetch="git://Android.git.linaro.org/"

8.回到android_gingerbread_src目錄下,執行reposync

$repo sync

這一步需要很長時間,喝杯茶等吧。

Copyright © Linux教程網 All Rights Reserved