天天看點

Mac環境下載下傳編譯Android源碼方法記錄

最近完成了Android 7.1.1在mac環境下的下載下傳和編譯,記錄一下。

(預設git,JDK相關環境已經配置OK)

下載下傳安裝repo

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

也可以手動下載下傳并放置到自定義目錄,然後再環境變量裡面做好配置,隻要保證能夠通路并運作即可

export PATH=${PATH}:/Users/baijunfeng/Development/sdk/tools:/Users/baijunfeng/Development/sdk/platform-tools:/Users/baijunfeng/Development/repo

然後開始下載下傳AOSP源碼,注:branch位址https://source.android.com/source/build-numbers.html#source-code-tags-and-builds

repo init -u https://android.googlesource.com/platform/manifest -b android-7.1.1_r6

repo sync -j8

小技巧:對于國内網絡不穩定情況,比較大的project經常會失敗,repo sync雖然是續傳的,但是單獨的project失敗了還是會從頭下載下傳,對于這樣的,可以單獨下載下傳,然後再執行repo sync。

例如,我在下載下傳的時候platform/prebuilts/sdk這個project大約4G多,失敗很多次,每次失敗就從頭下載下傳,因為太大,網速又慢,中間很容易遇到網絡中斷問題,最後,還是采用了repo sync platform/prebuilts/sdk單獨下載下傳才完成的。

在Mac系統下(我的是)此時編譯可能會遇到如下問題

************************************************************

You are building on a case-insensitive filesystem.

Please move your source tree to a case-sensitive filesystem.

************************************************************

解決方法如下

執行指令

# hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg

該指令會建立一個名為android.dmg或者android.dmg.sparseimage的磁盤驅動器,一旦加載,那麼就會運作在Android開發的驅動器格式上

如果磁盤不夠大,後續可以執行以下指令做調整,注意調整前需要先unmount

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

可以在.bash_profile中添加如下函數,友善快速mount或者unmount驅動器,注意android.dmg名稱的正确

# mount the android file image

function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }

# unmount the android file image

function umountAndroid() { hdiutil detach /Volumes/android; }

環境配置還需要做如下工作

安裝X-code Commond Line

$ xcode-select --install

安裝MacPorts,位址    http://www.macports.org/install.php

在.bash_profile中加入/opt/local/bin,需確定加在usr/bin之前,如下:

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

執行如下指令,從MacPocts下載下傳相關工具,make, git, and GPG packages等

$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg

在.bash_profile中加入以下指令,可以提升并行編譯處理速度

# set the number of open files to be 1024

ulimit -S -n 1024

(是以建議在環境配置好之後再下載下傳代碼,否則如果遇到上述問題,需要解決之後再把下載下傳的代碼copy到新生産的驅動器上,比較費時)

一切就緒之後再執行相關下載下傳指令,下載下傳代碼:

#mountAndroid

#cd ~/Volumes/android/

#mkdir AOSP

#cd AOSP

#repo init -u https://android.googlesource.com/platform/manifest -b android-7.1.1_r6

#repo sync -j8

(下載下傳...)

#cd android-7.1.1

#source ./build/envsetup.sh

#lunch aosp_arm-eng

#make -j8

如果遇到jack相關問題,參考:https://android.googlesource.com/platform/prebuilts/sdk/+/master/tools/README-jack-server.md

參考:https://source.android.com/source/building.html

https://source.android.com/source/initializing.html