隨著第一款Android的手機上市,Google也終於發布了其Android的源碼。通常情況下,一個開源項目的發布都是伴隨著一個巨大的完整的xxx-src.tar.gz的源碼包,然後解壓、configure/make即可。而Android是基於傳說中的Git來管理的,在發布方面自然也有所不同,它基於Git構造了一個可以隨時同步更新的源碼庫。
從 http://source.android.com/download 可以找到一段簡單的下載源碼的介紹。大致情況是,首先要在Linux或者MacO的系統下操作,其次要保證Git的版本在1.5.4之上,Python的版本在2.4之上。
先做一個小準備,在個人home目錄下建立一個bin目錄,並加入到PATH環境變數中
$ mkdir ~/bin
$ export PATH=$HOME/bin:$PATH
要下載其源碼,先要安裝一個Android的構建工具 repo。
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
然後再建立一個存放源碼的目錄
$ mkdir ~/android ; cd ~/android
之後使用這個repo工具,來初始化這個源碼倉庫:
$ repo init -u git://android.git.kernel.org/platform/manifest.git
片刻等待之後,倉庫初始化完成。此時,這個倉庫只是更新了repo這個構建工具本身,並下載了整個Android源碼倉庫的一個清單的版本庫,在~/android/.repo下面能夠看到這些檔案。其中 ~/android/.repo/repo 目錄是構建工具的全部代碼,基於Python寫成,稍後再看。 其次是 ~/android/.repo/manifests/default.xml檔案,這個是整個Android源碼庫的資訊清單檔,之後repo這個工具會根據這個清單依次下載所有的代碼。而~/android/.repo/manifest.git則是這個資訊清單檔的版本庫 。
Git有一個有意思的特性,就是可以制定存放版本庫版本資訊的目錄的位置,因而可以將存放版本資訊的目錄和實際的專案檔放置於不同的目錄下,而不是像以前的cvs或者Subversion一樣在每一個目錄下都有一個討厭的.xxx隱藏目錄。這也從某種程度上減少了冗餘資訊。
經過上述步驟之後,可以開始進行源碼倉庫的下載了,對於repo來說,稱之為“同步”——sync。
$ repo sync
下載過程中隨時可以終斷,中斷後重新執行同步即可更新到最新的源碼倉庫。