Mac OS X 下 Android6.0源碼的下載與編譯

爲什麼要閱讀源碼

有沒有必要閱讀Android源碼

  1. 瞭解基層,高層才能更好地工作。
  2. 能夠理解Android設計者的意圖。
  3. 能夠學習優秀開源項目的代碼風格和設計理念。

安裝步驟

官網地址:Establishing a Build Environment
查看想要下載的源碼的Tag和Builds:Codenames, Tags, and Build Numbers

這裏步驟就參考 Mac OS X 下 Android 6.0 源碼的下載與編譯 以及 清華大學TUNA鏡像源

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

$ sudo hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 80g ~/android.dmg

當然,你可能覺得80g不夠用,就自己給大點,只要不超過鏡像文件所在磁盤的剩餘空間就行,還有點就是鏡像文件在磁盤上佔的空間大小是你向鏡像文件裏放置的文件的實際大小,而不是上面定義的80g,這個最大空間的大小將來還能更改,所以不必擔心弄太大佔了空間,如果通過上面已經創建了,你可以通過下面重新設置鏡像大小

$ sudo hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage

Step 2. 加載分區

$ sudo hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android

Step 3. 下載並安裝需要的輔助工具

$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg

Step 4. 設置一個文件描述符限制

Mac 系統下默認只能同時打開 1024 個文件,而在進行 Android 源碼編譯時有可能會超出這個限制,因此需要解除這個限制。在~/.bash_profile中添加以下內容:

#set the number of open files to be 1024
ulimit -S -n 1024

至於~/.bash_profile你可以這樣打開:

1.啓動終端Terminal

2.進入當前用戶的home目錄
輸入cd~

3.創建.bash_profile
輸入touch .bash_profile

4.編輯.bash_profile文件
輸入open -e .bash_profile

5.添加上面內容,保存文件,關閉.bash_profile

6.更新剛配置的環境變量
輸入source .bash_profile

Step 5. 安裝Repo
Repo是一個輔助於Git管理Android版本及分支的工具。

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

Step 6. 下載壓縮包(這種做法我認爲是最快的)
使用清華大學TUNA鏡像源每月更新的初始化包,下載地址 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar ,下載完後把它放到 /Users/用戶名/下。然後再執行:

$ tar xf aosp-latest.tar
$ cd AOSP   # 解壓得到的 AOSP 工程目錄
$ repo sync # 正常同步一遍即可得到完整目錄

這裏如果出問題卡住,重新同步。如果是repo執行出錯的話,就重新執行Step5。

Step 7. 進入 Step 2 加載的分區
注意,先將之前解壓同步完的 AOSP 文件夾拷貝到分區中。
接着,

$ cd /Volumes/android/AOSP/

如果出現-bash: cd: /Volumes/android/AOSP/: No such file or directory,記得執行Step2步驟。

Step 8*. 編譯

$ source build/envsetup.sh

爲閱讀源碼

$ lunch aosp_arm-eng

最後

$ sudo make -j4

出現問題,解決,再 sudo make -j4 ,循環往復,直到最su終編譯完成。不用管出現的多個 warning ,有 error 時解決完繼續下去。我遇到過Unsupported curlOut of memory error,其實一般有問題百度、谷歌、Stack Overflow 找,總可以解決的,耐心點就行。—>不過,我找的真的快崩潰了,試了好多種,差點放棄了,還好想着白富美,堅持了下去。。。

終於,不知等了多久,編譯終於完成!!心情是相當的激動的,但是,既然編譯好源碼,我們起碼得去看下吧,想閱讀源碼又不只是去打開一個個文件看,當然要藉助工具了,這裏,我們通過Android Studio閱讀源碼。

在上面編譯成功後,繼續在源碼的根目錄下,即/Volumes/android/AOSP/下執行

$ mmm development/tools/idegen/

稍等片刻,接着

$ sh ./development/tools/idegen/idegen.sh

最終完成後,打開 Android Studio ,選擇打開一個現有的 Android Studio 項目,選擇 Android 源碼的根目錄,導入android.ipr 文件,最後,附上源碼圖

img

完美散花!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章