在Mac OS X中下載Android源代碼的一些經驗
首先說明。隨著最近(2014年6月開始)GFW的升級。這個站點:http://www.android.com/ 已經不能正常訪問了,以下的這些操作均是在我連接VPN的時候進行的。
首先,須要做一些準備工作:據這裏(http://source.android.com/source/initializing.html)介紹。Mac OS中文件系統的特點是:case-preserving but case-insensitive。也就是保留大寫和小寫,但對大寫和小寫不敏感。這樣會給興許執行一些命令帶來非常多麻煩,所以他們強烈建議新建一個大寫和小寫敏感的文件系統,這一點能夠通過磁盤映像非常easy地實現:
在Launchpad中——其它——磁盤工具。點開之後在左上角點擊“文件”——“新建”——“空白磁盤映像”。然後如圖所看到的,官方建議磁盤映像的大小應該在25GB以上。
在建立好磁盤映像之後,須要每次都去掛載它,比較麻煩,所以官方也建議在:~/.bash_profile中添加這樣一條:(簡介一下,~表示從用戶文件夾開始。所以以下這條語句中attach的dmg鏡像也指的是用戶文件夾。
假設大家對vim之類不太熟。能夠直接執行:open
-e ~/.bash_profile 來打開上面這個文件,當然,不提倡這樣做)
# mount the android file image function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }
這樣我們在每次掛載的時候。僅僅須要輸入:mountAndroid就能夠了。上面那個頁面的剩余部分。介紹了一些假設希望build 4.2.X之前版本號須要做的工作,假設僅僅是想下載或build最新版本號,能夠直接跳過,轉而參考這個頁面:
$ mkdir ~/bin $ PATH=~/bin:$PATH
以上這兩條命令是在用戶根文件夾下建立一個bin文件夾。
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo
以上這兩條命令是將repo tool復制到剛才新建的bin文件夾下。
在完畢這兩步之後,我們須要掛載剛才建映像。而且進入到映像中,對於剛才的配置,就進入以下這個映像:
$ cd /Volumes/android
然後在這裏建一個文件夾:
$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY
建立文件夾並進入之後,就能夠下載Android源代碼了:
$ repo init -u https://android.googlesource.com/platform/manifest
這條命令同一時候對repo進行初始化,並指定Android源代碼的repository。
最後須要輸入:
$ repo sync
以將源代碼同步到本地。須要指出的是。即便是有VPN等工具,在下載過程中可能依舊非常不穩定,會多次報錯或退出,這時使用repo sync能夠繼續下載,可是每次手動輸入比較麻煩。所以非常多教程都強烈建議大家寫一個bash腳本自己主動重新啟動下載:
#!/bin/bash repo sync while [ $? = 1 ]; do echo "================sync failed, re-sync again =====" sleep 3 repo sync done
復制上面代碼保存到剛才的源代碼文件夾(WORKING_DIRECTORY)裏。
如:download.sh,在終端中執行該腳本,然後就能夠等待其下載完了。另外,repo在下載過程中。在文件夾下是看不到不論什麽文件的。下載完畢之後會看到build等文件夾。
這就是一點經驗,非常多朋友也總結了如何通過國內能訪問的鏡像網站下載的經驗。這一點我以後有機會也會總結一下。
----------------------------------
(2014年7月12日更新)
沒想到依照上面的流程下載,還是出現了問題,這裏總結一下。今天早上起來一看,居然把30GB的磁盤映像空間占滿了!(我的Mac上空間確實不多了。256GB的固態硬盤。根本不夠用啊)。於是乎設置了一下隱藏目錄顯示:
$ defaults write com.apple.finder AppleShowAllFiles -bool true $ KillAll Finder
刪除以後又一次開始。自己想了一下,這次選擇下載某一個版本號,Android的分支列表能夠參看這個鏈接:https://android.googlesource.com/platform/manifest/+refs
我把上面說的download.sh改成了例如以下所看到的:
#!/bin/bash PATH=~/bin:$PATH repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1 repo sync while [ $?= 1 ]; do echo "================sync failed, re-sync again =====" sleep 3 repo sync done
然後又一次開始下載。經過漫長時間以後。似乎最終下載好了,細致看了一下。這次一共同擁有20GB左右。
準備再試試其它branch。更新一下,以免誤導大家。
在Mac OS X中下載Android源代碼的一些經驗