文章出處

在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的源代碼了.剩下的就只是需要耐心了.


文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()