天天看點

如何下載下傳Android源碼(非常詳細,含自動恢複下載下傳,編譯,運作模拟器說明)

今天終于把代碼下載下傳完成,特此開一篇博文記錄一下。上圖:

如何下載下傳Android源碼(非常詳細,含自動恢複下載下傳,編譯,運作模拟器說明)

為了下載下傳這些源碼,曆時5天5夜,說為什麼這麼長時間,是因為太容易中斷了,有時候下一晚上可能就一直沒在下,在你入睡的時候它就自己斷了,趁着這個周末有時間一直在電腦旁白看着它下完,中途也是挺曲折的,磁盤空間不夠用了(我的是40個G,不夠用),各種折騰,最後才把30多個G的代碼及臨時檔案移動到其它磁盤(Windows下使用的普通磁盤),繼續下載下傳完畢。

說一下如何下載下傳,網上有挺多文章說怎麼下載下傳的,我找了不少,但是由于國内不能通路google,于是發現可以通路清華的鏡像下載下傳,下載下傳速度還是挺快的,最高速度500KB/s。

下載下傳并配置repo資訊(一定要按照這個來,剛開始我自己建了一個檔案夾,在檔案夾内部做,一直不成功,後來從新開始按照這個弄才好的)

 a.

mkdir ~/bin

PATH=~/bin:$PATH

git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git//這是清華大學的鏡像

 b.

a步驟中得到的git-repo中的repo檔案拷貝到bin目錄

cp git-repo/repo ~/bin/

 c.修改repo檔案,修改REPO_URL

sudo gedit ~/bin/repo

在該檔案中修改

REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo'

初始化repo

在ubuntu14.10上,建立放置源碼的檔案夾

mkdir android

cd android

git config --global user.email "[email protected]"

git config --global user.name "Your Name"

repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.0.2_r1//關于user.email,user.name,剛開始我以為是需要去哪裡注冊的,于是在網上找了半天,都沒有說這個地方的注冊問題,于是我嘗試填了自己的郵箱,bingo!

開始下載下傳

repo sync

下載下傳的過程中會一直中斷,需要看着電腦不停的讓他接着下載下傳,可以通過以下腳本完成自動恢複下載下傳:

一點小提示: 有時候google的android伺服器老是斷,總不能讓我們守在電腦旁邊一直手工重新repo sync吧,這可是需要N個小時才能下載下傳完的啊。

我們就寫個小腳本讓電腦自動repo sync,直到下載下傳成功為止:

#!/bin/sh

count=0

ret=1

while [ $ret -ne 0 ]

do

ret=$?

count=$(( $count + 1))

echo "try $count, ret: $ret"

done

把上面的内容複制到一個檔案裡tryrepo.sh //建立檔案的指令為touch tryrepo.sh,然後打開進行修改,使用vim編輯器:vim ./tryrepo.sh,如果沒有vim編輯器則進行安裝:sudo apt-get install vim,如果你的庫裡面沒有vim的表檔案的話,需要更新系統的軟體庫。

然後修改tryrepo.sh的屬性,開始自動工作吧。第二點早上應該就大功告成了

chmod a+x tryrepo.sh //這個我推測應該是加入系統環境變量的意思?

./tryrepo.sh

下圖是源碼下載下傳完成之後,将臨時檔案夾.repo删除之後的空間使用分析圖:

如何下載下傳Android源碼(非常詳細,含自動恢複下載下傳,編譯,運作模拟器說明)

是以在下載下傳的時候一定一定要保留足夠的空間,中間不夠用的話,非常麻煩。100個G的空間推薦。

下載下傳完成之後,編譯也同樣是需要很大的空間,預留30個GB,編譯時間視電腦性能而定,我用了2天時間,算上中間環境配置,空間不夠,編譯錯誤,電腦不穩定等因素。(如果空間不夠,則可以删除臨時下載下傳庫.repo檔案夾),在編譯之前請參考其他文章添加系統環境變量。

使用指令:make -j8 -k 進行編譯

參數請看幫助文檔,編譯完成之後如下圖所示:

如何下載下傳Android源碼(非常詳細,含自動恢複下載下傳,編譯,運作模拟器說明)

編譯完成之後還不可以運作模拟器,其他文章會說模拟器在out/hosts/linux-86/bin/的檔案夾下,但是我這裡沒有。需要使用下面的指令來導入一些系統需要的環境變量和參數:

source build/envsetup.sh

設定好參數之後,使用指令lunch選擇我們要啟動的目标,然後再輸入emulator稍等一會,模拟器就會啟動了,如下圖所示:

如何下載下傳Android源碼(非常詳細,含自動恢複下載下傳,編譯,運作模拟器說明)