1. 程式人生 > >在Mac OS X中下載Android源代碼的一些經驗

在Mac OS X中下載Android源代碼的一些經驗

總結 同步 uil 空白 googl 新版 -h 教程 files

首先說明。隨著最近(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最新版本號,能夠直接跳過,轉而參考這個頁面:
http://source.android.com/source/downloading.html 。接下來依照這個頁面的介紹,一步步做就能夠了。簡單總結一下:

$ 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源代碼的一些經驗