標籤:
文檔說明:
1,主要參考android的官網:http://source.android.com/source/initializing.html.
2,本人使用的硬體設定:MacBook Pro,Mountain Lion(10.8)系統。
3,文中所描述的步驟是作者一步一步執行下來的,但絕對並不是唯一的步驟,步驟中的一些小細節讀者可以嘗試各種自己習慣的方法。
4,帶$ 標誌的,為terminal中輸入的命令語句
第一步,建立磁碟映像(初次使用,執行該步驟)
說明:儘管mac系統儲存了檔案名稱的大小寫,但卻不區分檔案名稱的大小寫(file.sh File.sh為同一個檔案)。為了避免git大小寫問題產生的bug,建議使用者將下載原始碼的路徑放到區分大小寫磁碟上。
開啟Disk Utility(磁碟工具)--> New Image(建立映像),如建立磁碟映像檔案:
其中的名稱android_source,軟體會自動加上_dmg,既磁碟掛在後的磁碟名為,android_source_dmg。在切換到該磁碟時,需要用到該名字。
第二步,下載環境配置(初次使用,執行該步驟)
1,xCode,蘋果的開發工具,可以在App Store輕鬆下載。不同的源碼所需要的最低版本也是不一樣的,作者的mac為10.8,目前所有版本都可下載,具體可參考官網。
2,Command Line Tools,安裝完xCode後,開啟Preferrences-->Downloads,可以下載改工具,如:
3,安裝MacPorts
驗證是否安裝,可以在terminal中輸入
$ sudo port
命令列,確定是否存在。否則可以根據官網http://www.macports.org/install.php所要求的步驟安裝(該軟體的安裝前需要安裝xcode和command line tools)。
4,安裝所需軟體
terminal中執行如下命令:
$ echo $PATH
確定是否包含/opt/local/bin路徑,並保證該路徑在/usr/bin路徑前。否則,在home路徑下輸入如下命令
$ open -e .bash_profile
開啟.bash_profile檔案後,將如下命令加入到該檔案中,並儲存。
$ export PATH=/opt/local/bin:$PATH
輸入如下命令,安裝make, git 和GPG包:
$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg
細心的使用者可能會發現上面所列的命令中安裝的git包,而文檔中使用的是git-core包,作者在實際安裝中使用git-core會報錯,改成git會通過。
5,將make版本從3.82降為3.81
說明:首先需要編輯/opt/local/etc/macports/sources.conf檔案,該檔案為可讀的,需要root許可權才能修改。修改的內容如下:
在該檔案的最後,rsycn所在行的上面加入如下資料:
file:///Users/Shared/dports
接著就可以按照官網上的步驟一個一個命令來執行了:
$ mkdir /Users/Shared/dports$ svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/$ portindex /Users/Shared/dports$ sudo port install gmake @3.81
6,設定檔案描述限制
這裡我的理解是修改同時開啟檔案的數量。開啟.bash_profile,添加如下代碼到該檔案中。
# set the number of open files to be 1024ulimit -S -n 1024
第三步,下載原檔案
該步驟中,除第1小點,是初次調用外(保證~/bin檔案夾存在),其它步驟在每次下載源碼時,都需要調用,並依次調用即可。
1,安裝Repo軟體(初次使用,執行該步驟)
$ mkdir ~/bin$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo$ chmod a+x ~/bin/repo
2,裝載磁碟
找到之前建立的.dmg (本文建立的為android.dmg),右鍵如所示,
點擊DiskImageMounter,成功後會在Finder的左側邊欄底部看到裝置:
3,初始化Repo用戶端
在進行該步驟之前,請確認:
- 目前的目錄已經切換到之前建立的磁碟映像下,裝載後,使用 cd/Volumes/android_source_dmg方法可以切換該目錄下。
- 確認你的google account可用,可以登陸以下網址確認:https://accounts.google.com/ServiceLogin
- 可以FQ!!至少可以順暢瀏覽google及android源碼的官網。
以上幾個確認後,就可以初始化該用戶端了。
首先,要建立一個檔案夾並切換到該檔案夾下,如
$ mkdir android4.0.1$ cd android4.0.1
其次,執行如下命令,該命令時為了能夠順利的調用repo命令:
$ PATH=~/bin:$PATH
然後執行以下命令:
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
可以根據需要,修改自己需要下載的版本。
4,下載原始碼
執行如下命令:
$ repo sync
到目前為止,源碼應該可以開始下載了,但由於檔案太大,網路出錯或者Google ip限制等原因,在下載過程中會出現各種錯誤或者中斷。
5,下載最佳化1
下載過程中,官網會限制同時串連的數目,為瞭解決這個問題,官網上提供了如下方法:
- https://android.googlesource.com/new-password,訪問該頁面,產生帳戶密碼,按照頁面的步驟,將產生頁面中machine開頭的兩行複製下來。
- 在home路徑下建立.netrc檔案(使用vi,很方便)。
- 將上面複製的內容,拷貝到該.netrc檔案中,並儲存,保證可讀。
- 使用如下命令初始化Repo用戶端:
$ repo init -u https://android.googlesource.com/a/platform/manifest -b android-4.0.1_r1
完成以上步驟後,可以繼續下載。
6,下載最佳化2
由於網路等原因,會造成下載中斷,儘管使用者可以通過repo sync命令繼續下載,但由於檔案太大,出現這種情況的頻率很高。因此可以使用如下命令:(源自柯元旦的android技術核心剖析一書)。
#!/bin/bash #FileName get-android.sh PATH=~/bin:$PATH repo init -u https://android.googlesource.com/platform/a/manifest -b android-4.0.1_r1 repo sync while [ $? = 1 ]; do echo "================sync failed, re-sync again =====" sleep 3 repo sync done
以上檔案為可執行檔(.sh,通過chmod +x get-android.sh改變該屬性),儲存到下載檔案夾路徑下(如 android4.0.1)。
執行該檔案./get-android.sh,然後就可以睡覺去了。
第二天開啟電腦,如果看到100%的標識,並有done的文字出現(由於急著上班,沒有切圖),更重要的是,下載源碼的檔案夾下看到了各種檔案夾,那恭喜你,下載成功了!
有什麼疑問都可以留言~
Mac下的android源碼下載